在CentOS7中默认安装有MariaDB,这个是MySQL的分支,在系统中安装MySQL完成之后可以直接覆盖掉MariaDB。
1. 下载并安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
使用yum命令安装MySQL
yum -y install mysql-community-server
直到安装成功中间会安装约2分钟。。。
2. MySQL数据库设置
启动mysql服务器
systemctl start mysqld.service
查看mysql运行状态
systemctl status mysqld.service
Mysql 被成功安装后,会给出root用户的密码,需要通过命令获取
grep "password" /var/log/mysqld.log
使用命令登录Mysql数据库
mysql -uroot -p
回车后,输入上面的root密码
登录成功后,需要首先修改root用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
在设置新密码时,如果新密码设置的比较简单,则会出现如下错误:
原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
可以通过下面命令查看:
SHOW VARIABLES LIKE 'validate_password%';
密码的长度是由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=1;
为了 防止yum自动更新,需要将repository安装源移除
yum -y remove mysql57-community-release-el7-10.noarch
如果需要设置mysql表字段不区分大小写,则需要在/et/my.cnf配置文件最后添加如下内容
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
添加后,服务需要重启才能生效
如果Mysql客户端连接拒绝,则通过以下命令设置
grant all privileges on *.* to 'root'@'%' with grant option;
或
grant all privileges on *.* to 'root'@'localhost' with grant option;
二者区别:
'root'@'%' 表示在mysql客户端登录root用户,可以使用grant命令为其他用户赋权限
'root'@'localhost' 表示仅能在mysql所在服务器登录root用户,才能使用grant命令为其他用户赋权,生产环境推荐使用该方式