Centos7安装mysql

mysql 官方下载地址:
https://dev.mysql.com/downloads/repo/yum/
查找最新的 rpmmysqlrpm.png

下载

1
$ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

确定 md5 值

1
2
$ md5sum mysql80-community-release-el7-1.noarch.rpm
739dc44566d739c5d7b893de96ee6848 mysql80-community-release-el7-1.noarch.rpm

安装

1
$ sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

因为现今mysql已经更新到8.0以上了,所以可以根据需求是用5.5以上的某一个版本还是8.0等

8.0版本

1
2
$ sudo yum update -y
$ sudo yum install -y mysql-server

5.7版本

查看可安装的版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community disabled
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - disabled
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community disabled
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - disabled
mysql-connectors-community/x86_64 MySQL Connectors Community enabled: 51
mysql-connectors-community-source MySQL Connectors Community - S disabled
mysql-tools-community/x86_64 MySQL Tools Community enabled: 63
mysql-tools-community-source MySQL Tools Community - Source disabled
mysql-tools-preview/x86_64 MySQL Tools Preview disabled
mysql-tools-preview-source MySQL Tools Preview - Source disabled
mysql55-community/x86_64 MySQL 5.5 Community Server disabled
mysql55-community-source MySQL 5.5 Community Server - S disabled
mysql56-community/x86_64 MySQL 5.6 Community Server disabled
mysql56-community-source MySQL 5.6 Community Server - S disabled
mysql57-community/x86_64 MySQL 5.7 Community Server disabled
mysql57-community-source MySQL 5.7 Community Server - S disabled
mysql80-community/x86_64 MySQL 8.0 Community Server enabled: 17
mysql80-community-source MySQL 8.0 Community Server - S disabled

因为默认的是8.0的版本,所以要选择5.7的版本

1
2
$ sudo yum-config-manager --disable mysql80-community
$ sudo yum-config-manager --enable mysql57-community

下载

1
$ sudo yum install mysql-community-server

启动

1
$ sudo systemctl start mysqld

查看运行状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo systemctl status mysqld

● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2018-06-01 10:35:58 UTC; 1h 39min ago
Docs: man:mysqld(8)
[http://dev.mysql.com/doc/refman/en/using-systemd.html](http://dev.mysql.com/doc/refman/en/using-systemd.html)
Process: 7474 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 7542 (mysqld)
Status: "SERVER_OPERATING"
CGroup: /system.slice/mysqld.service
└─7542 /usr/sbin/mysqld

Jun 01 10:35:49 bogon systemd[1]: Starting MySQL Server...
Jun 01 10:35:58 bogon systemd[1]: Started MySQL Server.</pre>

这时候mysql已经安装成功了,下面是配置

配置

Mysql 在安装时会默认设置一个随机密码,需要在第一次使用时修改

查看密码

1
2
$ sudo grep 'temporary password' /var/log/mysqld.log
2018-06-01T10:35:51.710406Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Vq9wOQ&trFs*

首先使用默认密码登录 Mysql

1
$ mysql -uroot -p

查看所有 validatei_password

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 |
| 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 |
+--------------------------------------+-------+
14 rows in set (0.00 sec)

这时候会看到mysql的密码策略

1
2
3
4
5
6
7
8
9
10
11
12
There are three levels of password validation policy:

# 长度大于 8 位
LOW Length >= 8
# 长度大于 8 位,数字,混合大小写和特殊字符
MEDIUM Length >= 8, numeric, mixed case, and special characters
# 长度大于 8 位,数字,混合大小写,特殊字符和字典
STRONG Length >= 8, numeric, mixed case, special characters and dictionary

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

他们分别对应了数字 0, 1, 2,Mysql 默认的等级为 MEDIUM,所以输入普通的密码就会报错,怎样修改策略呢?

所以当出现下面的错误的时候,有可能就是因为密码强度的问题

1
Failed! Error: Your password does not satisfy the current policy requirements

所以可以根据你想达到的安全程度,设置密码,比如我这里设置为最低:

1
2
3
set global validate_password_policy=0;
## 如果你不想让长度必须大于 8 位,也可以改为 4,这是最低长度
set global validate_password_length=4;

随后修改mysql密码:

1
set password=password('111111');

最后可以将访问权限全部对外开放

1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wxnacy' WITH GRANT OPTION;

也可以指定 ip 开放

1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.33.11' IDENTIFIED BY 'wxnacy' WITH GRANT OPTION;

最后使配置生效

1
flush privileges;

mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效