`

Centos7通过yum安装最新MySQL

 
阅读更多

  

一、去官网查看最新安装包

https://dev.mysql.com/downloads/repo/yum/

二。下载MySQL源安装包

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安装MySql源

yum -y install mysql57-community-release-el7-11.noarch.rpm

查看一下安装效果

yum repolist enabled | grep mysql.*

三、安装MySQL服务器

yum install -y mysql-community-server

四、启动MySQL服务

systemctl start  mysqld

五、初始化数据库密码

首次启动服务时,mysql会给 root@localhost 一个初始化密码,并记录在日志中,需到日志中查看

[root@daVpMG221063 ~]# grep password /var/log/mysqld.log 
2019-12-18T01:43:42.369143Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: z0;w7NiqsljJ

 在本机上使用root用户及查到的初始化密码登录

mysql -uroot -p

登录完必须先修改 root@localhost 的密码,否则其他操作不允许进行

ALTER USER 'root'@'localhost' IDENTIFIED BY '****************';

六、修改密码要求

mysql默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,有两种办法

1.降低密码要求

mysql> show variables like 'validate_password%';   //通过此命令查看密码要求相关变量,下面是8.0版本参数,旧版参数是validate_password_policy
+--------------------------------------+--------+
| 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      |
+--------------------------------------+--------+
然后使用 set global validate_password.policy=0 等命令修改密码要求

 看到变量名称就能知道它的作用,这种修改方式一旦服务重启就会失效,因此可以将修改后的值如下加到mysql配置文件 /etc/my.cnf尾部,重启服务,修改生效且一直存在

validate_password.check_user_name=OFF
validate_password.length=4
validate_password.mixed_case_count=0
validate_password.number_count=0
validate_password.policy=0
validate_password.special_char_count=0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 2.关闭密码验证

5.7版本mysql在 /etc/my.cnf 中添加 validate-password=OFF 然后重启服务,密码验证失效,使用 show variables like 'validate_password%' 可以看到这些变量都没了

8.0版本如上操作重启服务失败,当然可以在 /etc/my.cnf 中添加两行

plugin-load=validate_password.so
validate-password=OFF

可以重启,但是密码验证依然生效,8.0版本如果关闭密码验证我暂时不知

七、数据库授权

数据库没有授权,只支持localhost本地访问

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
//从MySQL 8开始,您不再可以(隐式)使用GRANT命令创建用户.请改用CREATE USER,然后使用GRANT声明
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //with grant option意思是给与'root'@'%'用户将权限赋予他们的权限

输入后使修改生效还需要下面的语句 mysql>FLUSH PRIVILEGES;

也可以通过修改表来实现,两者区别是上面的做法是新增一个用户,下面的做法是修改用户对应主机范围

mysql -u root -p
mysql> use mysql; 
mysql> update user set host = '%' where user = 'root'; 
mysql> select host, user from user;

八、设置自动启动

systemctl enable mysqld

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics