第一步:获取mysql YUM源
进入mysql官网获取RPM包下载地址
https://dev.mysql.com/downloads/repo/yum/
点击下载
获取到下载链接:
https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
--------------------------------------------------------------------------------
第二步:下载和安装mysql源
?进入mysql文件夹,没有的自行创建
1
2
|
[root@VM_0_10_centos /] # cd /usr/local/mysql/ [root@VM_0_10_centos mysql] # |
?下载源安装包
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@VM_0_10_centos mysql] # wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm --2018-08-04 10:29:39-- https: //repo .mysql.com //mysql80-community-release-el7-1 .noarch.rpm Resolving repo.mysql.com (repo.mysql.com)... 23.219.33.198 Connecting to repo.mysql.com (repo.mysql.com)|23.219.33.198|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 25820 (25K) [application /x-redhat-package-manager ] Saving to: ‘mysql80-community-release-el7-1.noarch.rpm' 100%[==========================================================================>] 25,820 112KB /s in 0.2s 2018-08-04 10:29:40 (112 KB /s ) - ‘mysql80-community-release-el7-1.noarch.rpm' saved [25820 /25820 ] [root@VM_0_10_centos mysql] # ll total 28 -rw-r--r-- 1 root root 25820 Apr 18 13:24 mysql80-community-release-el7-1.noarch.rpm [root@VM_0_10_centos mysql] # |
?安装mysql源
1
|
[root@VM_0_10_centos mysql] # yum -y localinstall mysql80-community-release-el7-1.noarch.rpm |
第三步:在线安装MySQL
1
|
[root@VM_0_10_centos mysql] # yum -y install mysql-community-server |
下载东西比较多,等几分钟。
第四步:启动Mysql服务
1
|
[root@VM_0_10_centos mysql] # systemctl start mysqld |
第五步:设置开机启动
1
2
|
[root@VM_0_10_centos mysql] # systemctl enable mysqld [root@VM_0_10_centos mysql] # systemctl daemon-reload |
第六步:修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。用grep命令搜一下
1
2
3
4
5
|
[root@VM_0_10_centos mysql] # grep "A temporary password is generated for root@localhost" /var/log/mysqld.log 2018-08-02T02:19:55.829527Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !J:KUwU9y0ZR 2018-08-02T04:49:34.979689Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pw< /s9 ,Wivm2 2018-08-04T02:40:46.781768Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: nNyK,Y)Wd0-G [root@VM_0_10_centos mysql] # |
这里有三条搜索结果,因为我重复装了3次MySQL,如果第一次安装是只会有一条的。
直接拿到临时默认密码 : nNyK,Y)Wd0-G
?登录MySQL
1
2
3
4
5
6
7
8
9
10
11
|
[root@VM_0_10_centos mysql] # mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.12 Copyright (c) 2000, 2018, Oracle and /or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> |
?更改root账户临时密码
1
2
3
|
mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'Pwd123@easyoh.net' ; Query OK, 0 rows affected (0.03 sec) mysql> |
Pwd123@easyoh.net 请替换成你自己的密码。
(备注 mysql8.0默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位)
第七步:创建新用户、授权、远程登录(不要直接使用root账户登录)
?创建easyoh-mp用户并且授权远程登录
1
2
3
4
5
|
mysql> CREATE USER 'easyoh-mp' @ '%' IDENTIFIED BY 'Pwd123@easyoh.net' ; Query OK, 0 rows affected (0.04 sec) mysql> GRANT ALL ON *.* TO 'easyoh-mp' @ '%' ; Query OK, 0 rows affected (0.03 sec) mysql> |
?在sqlyog客户端用easyoh-mp账户登录(其他客户端也可以,随意)
发现会报plugin caching_sha2_password错误。这是因为MySQL8.0密码策略默认为caching_sha2_password。与5.7有所不同。
?进入MySQL数据库查询user表信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
mysql> use mysql; Database changed mysql> select user,host,plugin from user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | easyoh-mp | % | caching_sha2_password | | mysql.infoschema | localhost | caching_sha2_password | | mysql.session | localhost | caching_sha2_password | | mysql.sys | localhost | caching_sha2_password | | root | localhost | caching_sha2_password | +------------------+-----------+-----------------------+ 5 rows in set (0.00 sec) mysql> |
发现确实是caching_sha2_password
?依次执行下面语句
1
2
3
4
5
6
7
|
mysql> ALTER USER 'easyoh-mp' @ '%' IDENTIFIED BY 'Pwd123@easyoh.net' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.04 sec) mysql> ALTER USER 'easyoh-mp' @ '%' IDENTIFIED WITH mysql_native_password BY 'Pwd123@easyoh.net' ; Query OK, 0 rows affected (0.05 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> |
再次登录就可以登录成功了。
第8步:编码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mysql> show variables like '%character%' ; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql-8 .0 /charsets/ | +--------------------------+--------------------------------+ 8 rows in set (0.01 sec) mysql> |
MySQL8.0默认就是utf8mb4编码,无需更改。
OK 至此 Mysql安装配置完毕;
全流程操作记录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
[root@VM_0_10_centos ~] # [root@VM_0_10_centos /] # cd /usr/local/mysql/ [root@VM_0_10_centos mysql] # wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm --2018-08-04 10:29:39-- https: //repo .mysql.com //mysql80-community-release-el7-1 .noarch.rpm Resolving repo.mysql.com (repo.mysql.com)... 23.219.33.198 Connecting to repo.mysql.com (repo.mysql.com)|23.219.33.198|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 25820 (25K) [application /x-redhat-package-manager ] Saving to: ‘mysql80-community-release-el7-1.noarch.rpm' 100%[==========================================================================>] 25,820 112KB /s in 0.2s 2018-08-04 10:29:40 (112 KB /s ) - ‘mysql80-community-release-el7-1.noarch.rpm' saved [25820 /25820 ] [root@VM_0_10_centos mysql] # ll total 28 -rw-r--r-- 1 root root 25820 Apr 18 13:24 mysql80-community-release-el7-1.noarch.rpm [root@VM_0_10_centos mysql] # yum -y localinstall mysql80-community-release-el7-1.noarch.rpm Loaded plugins: fastestmirror, langpacks Examining mysql80-community-release-el7-1.noarch.rpm: mysql80-community-release-el7-1.noarch Marking mysql80-community-release-el7-1.noarch.rpm to be installed Resolving Dependencies --> Running transaction check ---> Package mysql80-community-release.noarch 0:el7-1 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================================================================================================= Installing: mysql80-community-release noarch el7-1 /mysql80-community-release-el7-1 .noarch 31 k Transaction Summary ================================================================================================================================================================================================================= Install 1 Package Total size: 31 k Installed size: 31 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : mysql80-community-release-el7-1.noarch 1 /1 Verifying : mysql80-community-release-el7-1.noarch 1 /1 Installed: mysql80-community-release.noarch 0:el7-1 Complete! [root@VM_0_10_centos mysql] # yum -y install mysql-community-server Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile epel 12641 /12641 Resolving Dependencies --> Running transaction check ---> Package mysql-community-server.x86_64 0:8.0.12-1.el7 will be installed --> Processing Dependency: mysql-community-common(x86-64) = 8.0.12-1.el7 for package: mysql-community-server-8.0.12-1.el7.x86_64 --> Processing Dependency: mysql-community-client(x86-64) >= 8.0.0 for package: mysql-community-server-8.0.12-1.el7.x86_64 --> Running transaction check ---> Package mysql-community-client.x86_64 0:8.0.12-1.el7 will be installed --> Processing Dependency: mysql-community-libs(x86-64) >= 8.0.0 for package: mysql-community-client-8.0.12-1.el7.x86_64 ---> Package mysql-community-common.x86_64 0:8.0.12-1.el7 will be installed --> Running transaction check ---> Package mysql-community-libs.x86_64 0:8.0.12-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================================================================================================================================================= Package Arch Version Repository Size ================================================================================================================================================================================================================= Installing: mysql-community-server x86_64 8.0.12-1.el7 mysql80-community 349 M Installing for dependencies: mysql-community-client x86_64 8.0.12-1.el7 mysql80-community 26 M mysql-community-common x86_64 8.0.12-1.el7 mysql80-community 541 k mysql-community-libs x86_64 8.0.12-1.el7 mysql80-community 2.2 M Transaction Summary ================================================================================================================================================================================================================= Install 1 Package (+3 Dependent packages) Total download size: 377 M Installed size: 1.7 G Downloading packages: (1 /4 ): mysql-community-common-8.0.12-1.el7.x86_64.rpm | 541 kB 00:00:05 (2 /4 ): mysql-community-client-8.0.12-1.el7.x86_64.rpm | 26 MB 00:00:12 (3 /4 ): mysql-community-server-8.0.12-1.el7.x86_64.rpm | 349 MB 00:02:26 (4 /4 ): mysql-community-libs-8.0.12-1.el7.x86_64.rpm | 2.2 MB 00:03:37 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 1.7 MB /s | 377 MB 00:03:43 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : mysql-community-common-8.0.12-1.el7.x86_64 1 /4 Installing : mysql-community-libs-8.0.12-1.el7.x86_64 2 /4 Installing : mysql-community-client-8.0.12-1.el7.x86_64 3 /4 Installing : mysql-community-server-8.0.12-1.el7.x86_64 4 /4 Verifying : mysql-community-common-8.0.12-1.el7.x86_64 1 /4 Verifying : mysql-community-libs-8.0.12-1.el7.x86_64 2 /4 Verifying : mysql-community-client-8.0.12-1.el7.x86_64 3 /4 Verifying : mysql-community-server-8.0.12-1.el7.x86_64 4 /4 Installed: mysql-community-server.x86_64 0:8.0.12-1.el7 Dependency Installed: mysql-community-client.x86_64 0:8.0.12-1.el7 mysql-community-common.x86_64 0:8.0.12-1.el7 mysql-community-libs.x86_64 0:8.0.12-1.el7 Complete! [root@VM_0_10_centos mysql] # systemctl start mysqld [root@VM_0_10_centos mysql] # systemctl enable mysqld [root@VM_0_10_centos mysql] # systemctl daemon-reload [root@VM_0_10_centos mysql] # grep "A temporary password is generated for root@localhost" /var/log/mysqld.log 2018-08-02T02:19:55.829527Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !J:KUwU9y0ZR 2018-08-02T04:49:34.979689Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pw< /s9 ,Wivm2 2018-08-04T02:40:46.781768Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: nNyK,Y)Wd0-G [root@VM_0_10_centos mysql] # mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.12 Copyright (c) 2000, 2018, Oracle and /or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY 'Pwd123@easyoh.net' ; Query OK, 0 rows affected (0.03 sec) mysql> CREATE USER 'easyoh-mp' @ '%' IDENTIFIED BY 'Pwd123@easyoh.net' ; Query OK, 0 rows affected (0.04 sec) mysql> GRANT ALL ON *.* TO 'easyoh-mp' @ '%' ; Query OK, 0 rows affected (0.03 sec) mysql> use mysql; Database changed mysql> select user,host,plugin from user; +------------------+-----------+-----------------------+ | user | host | plugin | +------------------+-----------+-----------------------+ | easyoh-mp | % | caching_sha2_password | | mysql.infoschema | localhost | caching_sha2_password | | mysql.session | localhost | caching_sha2_password | | mysql.sys | localhost | caching_sha2_password | | root | localhost | caching_sha2_password | +------------------+-----------+-----------------------+ 5 rows in set (0.00 sec) mysql> ALTER USER 'easyoh-mp' @ '%' IDENTIFIED BY 'Pwd123@easyoh.net' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.04 sec) mysql> ALTER USER 'easyoh-mp' @ '%' IDENTIFIED WITH mysql_native_password BY 'Pwd123@easyoh.net' ; Query OK, 0 rows affected (0.05 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> show variables like '%character%' ; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql-8 .0 /charsets/ | +--------------------------+--------------------------------+ 8 rows in set (0.01 sec) |
这里有个问题,新密码设置的时候如果设置的过于简单会报错:
原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关:
MySQL完整的初始密码规则可以通过如下命令查看:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
mysql> SHOW VARIABLES LIKE 'validate_password%' ; +--------------------------------------+-------+ | Variable_name | Value | +--------------------------------------+-------+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 4 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 1 | +--------------------------------------+-------+ 7 rows in set (0.01 sec) |
密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是:
1
|
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count) |
我的是已经修改过的,初始情况下第一个的值是ON,validate_password_length是8。可以通过如下命令修改:
1
2
|
mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; |
总结
以上所述是小编给大家介绍的CentOS 7.4 64位安装配置MySQL8.0的详细步骤,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/smiler/archive/2018/10/17/9802056.html