CentOS默认安装有MariaDB,这是MySQL的分支。
但还是要在系统中安装MySQL,且安装完成后可直接覆盖MariaDB。
1、下载并安装MySQL官方 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面命令就直接下载了安装用的Yum Repository,大概25KB,然后就可以直接yum安装。
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装MySQL服务器(覆盖之前的mariadb)
yum -y install mysql-community-server
# failed to start mysqld.service
# 出现这个问题是因为Mysql的GPG升级,需重新获取
# 执行
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 再执行
yum -y install mysql-community-server
至此MySQL安装完成,然后是对MySQL的一些设置。
2、MySQL数据库设置
首次启动MySQL
systemctl start mysqld.service
查看MySQL运行状态
systemctl status mysqld.service
MySQL已正常运行,不过要进入MySQL还得先找出此时root用户的密码
通过如下命令可在日志文件中找出密码:
grep "password" /var/log/mysqld.log
如下命令进入数据库:
mysql -uroot -p
输入初始密码(是上面图片最后面的no;e!5>>alfg),此时不能做任何事情,因为MySQL默认必须修改密码后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/';:等),不然不能配置成功
如果设置密码简单,出现
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决办法:
1、查看 mysql 初始的密码策略
show variables like 'validate_password%';
若显示如下问题:
mysql> show variables like 'validate_password%';
Empty set, 1 warning (0.00 sec)
处理
出现这个问题是因为并没有安装 validate_password
插件。
具体操作如下:
/** 安装插件 **/
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.10 sec)
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 | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
7 rows in set, 1 warning (0.00 sec)
2、设置密码的验证强度等级
set global validate_password_policy=LOW;
3、当前密码长度为 8 ,设置为 6 位的密码
set global validate_password_length=6;
4、重新设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
3、开启mysql的远程访问
执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
然后再下面命令
flush privileges;
4、为firewalld添加开放端口
添加mysql端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入
firewall-cmd --reload
5、更改mysql的语言
登录mysql,输入status
status
可以看到,Server characterset不是utf-8
因此先退出mysql,然后修改/etc/my.cnf文件内容
vim /etc/my.cnf
进入文件后,新增四行代码:
[client]
default-character-set=utf8
...
character-set-server=utf8
collation-server=utf8_general_ci
保存更改后的my.cnf文件后,重启mysql,输入status再次查看
service mysqld restart