6.1.1. Mysql-linux在线安装5.7
6.1.1.1. CentOS 通过yum在线安装MySQL5.7
Step1: 检测系统是否自带安装mysql
# yum list installed | grep mysql
Step2: 删除系统自带的mysql及其依赖 命令:
# yum -y remove mysql-libs.x86_64
Step3: 给CentOS添加rpm源,并且选择较新的源 命令:
# wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
# yum localinstall mysql-community-release-el6-5.noarch.rpm
# yum repolist all | grep mysql
# yum-config-manager --disable mysql55-community
# yum-config-manager --disable mysql56-community
# yum-config-manager --enable mysql57-community-dmr
# yum repolist enabled | grep mysql
Step4:安装mysql 服务器 命令:
# yum install mysql-community-server
Step5: 启动mysql 命令:
# service mysqld start
Step6: 查看mysql是否自启动,并且设置开启自启动 命令:
# chkconfig --list | grep mysqld
# chkconfig mysqld on
Step7: mysql安全设置 命令:
# mysql_secure_installation
6.1.1.2. 更改mysql存储位置
首先要关闭mysql
service mysqld stop
转移数据
cp -a /var/lib/mysql /home/mysql_data/
接下来修改脚本和配置文件中用到的三个文件中的路径,主要目的是修改 datadir 的路径为 上面转移数据的目标路径
vi /etc/my.cnf # 修改两处- datadir和socket的前缀路径
vi /etc/init.d/mysqld # 修改多处,需要用搜索查找/var/lib/mysql的路径,并替换掉
vi /usr/bin/mysqld_safe # 修改一处,datadir
下面需要建立一个mysql.sock的链接:
#ln -s /data/mysql_data/mysql/mysql.sock /var/lib/mysql/mysql.sock
修改完成,启动mysql 服务
service mysqld start
如果是新安装的mysql的话,启动的时候会出现以下提示,这个不用担心会自动生成的。
/sbin/restorecon: lstat(/data/mysql_data/mysql) failed: No such file or directory
Initializing MySQL database: [ OK ]
Starting mysqld: [ OK ]
6.1.1.3. 5.7 初始密码修改
vim /etc/my.cnf
加上这一行,关闭登录验证
skip-grant-tables=1
重启mysql,然后登录到mysql,进行修改密码
# service mysql restart
# mysql
// mysql 链接上之后,切换到mysql库
mysql > use mysql
mysql > UPDATE user SET authentication_string=PASSWORD("123456") WHERE user='root';
mysql > update user set password=password('123456') where user='root';
第二条修改如果报错的话,没有关系。
然后把登录验证打开。重启mysql即可
6.1.1.4. 第二次登录则提示还需要重置密码
mysql> ALTER USER USER() IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这里提示策略问题。那么就是密码不够复杂。如果为了测试就要简单的密码,则可以修改 validate_password_policy 值
validate_password_policy有以下取值:
| Policy | Tests Performed |
|---|---|
| 0 or LOW | Length |
| 1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
| 2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
mysql> select @@validate_password_length;
+----------------------------+
| @@validate_password_length |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.00 sec)
默认长度为8;这里修改下长度,有关长度计算有其他的参数决定
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
6.1.1.5. 设置远程访问
查看状态
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
更改root账户可以为远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_root_password' WITH GRANT OPTION;
修改生效
mysql> FLUSH PRIVILEGES;