1.缷载maridb
一般centos都会预装maridb,这个可能会与mysql冲突,先卸载它
[root@VM-8-7-centos home]# rpm -qa | grep mysql
[root@VM-8-7-centos home]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@VM-8-7-centos home]# rpm -e --nodeps mariadb-libs
[root@VM-8-7-centos home]# rpm -qa | grep mariadb
2.安装wget
# 查找wget # 如果有内容,表示还未安装
rpm -qa|grep wget
# 安装wget
yum -y install wget
3.安装依赖项
# 查找libaio
[root@VM-8-7-centos home]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64# 检查numactl
[root@VM-8-7-centos home]# rpm -qa|grep numactl
numactl-libs-2.0.12-5.el7.x86_64
numactl-devel-2.0.12-5.el7.x86_64
[root@VM-8-7-centos home]#
没有就安装
# 安装libaio
yum -y install libaio
# 安装numactl
yum -y install numactl
4. 安装mysql
4.1 去官网,选择版本:https://www.mysql.com/downloads/
4.2 进入相应目录,使用wget工具下载mysql安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.1/mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar
4.3 解压文件
tar -xvf mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar
4.4 安装common
rpm -ivh mysql-community-common-8.1.0-1.el7.x86_64.rpm --nodeps --force
4.5 安装libs
rpm -ivh mysql-community-libs-8.1.0-1.el7.x86_64.rpm --nodeps --force
4.6 安装client
rpm -ivh mysql-community-client-8.1.0-1.el7.x86_64.rpm --nodeps --force
4.7 安装server
rpm -ivh mysql-community-server-8.1.0-1.el7.x86_64.rpm --nodeps --force
4.8 安装完成
rpm -qa | grep mysql
5. 获取root默认密码
启动
systemctl start mysqld
关闭
systemctl stop mysqld.service
查看安装版本:
mysqladmin --version
默认密码
grep "password" /var/log/mysqld.log
进入MySQL
mysql -u root -p
修改密码
alter user user() identified by "123456";
密码太简单,报错:不建议后续操作!建议使用复杂一些的密码!使用简单密码最好配置IP白名单。不然数据很容易被人清理,不要问我怎么知道
mysql> alter user user() identified by "123456";
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.01 sec)mysql> alter user user() identified by "123456";
Query OK, 0 rows affected (0.00 sec)
出现这样的报错:
mysql> set global validate_password_policy=0;
ERROR 1193 (HY000): Unknown system variable ‘validate_password_policy’
解决方案是:
打开vim /etc/my.cnf,然后在[mysqld]的下方加入如下代码:
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
然后重启mysqld服务,如下:
systemctl restart mysqld.service
执行以下命令来查看当前的密码策略:
SHOW VARIABLES LIKE 'validate_password%';
1
根据需求修改以下变量:
validate_password.policy:密码策略,默认值为MEDIUM。可以设置为LOW、MEDIUM、STRONG或者自定义。例如,可以将其设置为LOW以降低密码复杂性要求。
SET GLOBAL validate_password.policy = LOW;
不同策略的要求:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;默认值。
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
validate_password.length:密码最小长度,默认值为8。可以根据需要修改最小密码长度。
SET GLOBAL validate_password.length = 6;
validate_password.number_count:密码中的数字要求,默认值为1。可以增加或减少数字的要求。
SET GLOBAL validate_password.number_count = 1;
validate_password.special_char_count:密码中特殊字符的要求,默认值为1。可以增加或减少特殊字符的要求。
SET GLOBAL validate_password.special_char_count = 1;
validate_password.mixed_case_count:密码中大写字母和小写字母的要求,默认值为1。可以增加或减少大写字母和小写字母的要求。
SET GLOBAL validate_password.mixed_case_count = 1;
- 开启开机自启动
systemctl enable mysqld
systemctl daemon-reload
连接MySQL报错,is not allowed to connect to this MySQL server
选择mysql数据库,并查询权限
use mysql;
select host from user where user='root';
可以看到,执行查询语句后得到的数据结果中 host 的值是 localhost
mysql> select host from user where user='root';
+-----------+
| host |
+-----------+
| localhost |
+-----------+
1 row in set (0.00 sec)
我们执行update语句修改权限
update user set host = '%' where user ='root';
3、刷新配置
flush privileges;
再次执行查询权限语句
select host from user where user='root';
可以看到,已经修改成功
mysql> select host from user where user='root';
+------+
| host |
+------+
| % |
+------+
1 row in set (0.00 sec)