MySQL安装
一、yum方式安装MySQL 5.7
CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变:
1、下载mysql的源
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2、安装yum库
yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
3、安装MySQL
yum install -y mysql-community-server
4、启动MySQL服务
systemctl start mysqld
systemctl status mysqld
5、进入mysql并修改默认密码
(1)获取初始化密码
此时MySQL已经开始正常运行,不过MySQL5.7加强了root用户的安全性,因此在第一次安装后会初始化一个随机密码,如果要想进入MySQL还得先找出root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
2020-07-02T06:53:24.714760Z 1 [Note] A temporary password is generated for root@localhost: rfH2e?6igi%T
(2)登录mysql
[root@localhost ~]# mysql -uroot -p
(3)修改原始密码
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这里有个问题,新密码设置的时候如果设置的过于简单会报错,原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关。
MySQL完整的初始密码规则可以通过如下命令查看:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | ON |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
通过如下命令修改:
set global validate_password_policy=0;
set global validate_password_length=4;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
然后退出后即可用新密码登录。
(4)远程连接授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
(5)开通端口(默认3306)
firewall-cmd --add-port=3306/tcp
6、禁止yum库自动更新
此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
[root@localhost ~]# yum -y remove mysql57-community-release-el7-7.noarch
此时才算真的完成了。