centos7安装mysql8的坑

安装过程:

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
cd /usr/src
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

#安装yum源
yum localinstall mysql80-community-release-el7-1.noarch.rpm

#更新yum源
yum clean all
yum makecache

#开始安装MySQL
yum install mysql-community-server

#启动MySQL
systemctl start mysqld


至此安装完成

第四步获取密码:

[root@izj6c3njvldcpf6rgj4srvz src]# cat /var/log/mysqld.log | grep password
2019-12-04T01:59:00.167999Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: l4neY,lKxG5D

#登录MySQL修改mysql用户密码,密码不能太简单
mysql -u root -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'l4neY,lKxG6D';

异常:
Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.

打开日志:cat /var/log/mysqld.log

1
2
3
4
2019-12-03T14:55:59.513203Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 1088
2019-12-03T14:55:59.626483Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2019-12-03T14:55:59.626637Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-12-03T14:55:59.626707Z 0 [ERROR] [MY-010119] [Server] Aborting

日志分析:

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
大概意思是找不到有效数据,查看
/usr/sbin/mysqld,发现是组和拥有者都是root,而我们的mysql执行是以mysql用户执行的。这个时候修改相关文件的组和拥有者。

一:
[root@izj6c3njvldcpf6rgj4srvz dava]# ls -ld /usr/sbin/mysqld
-rwxr-xr-x 1 root root 850078160 Sep 20 17:32 /usr/sbin/mysqld

[root@izj6c3njvldcpf6rgj4srvz dava]# chown -R mysql:mysql /usr/sbin/mysqld
[root@izj6c3njvldcpf6rgj4srvz dava]# ls -ld /usr/sbin/mysqld
-rwxr-xr-x 1 mysql mysql 850078160 Sep 20 17:32 /usr/sbin/mysqld

二,

[root@izj6c3njvldcpf6rgj4srvz dava]# ls -al /var/lib/mysql
total 188492
drwxr-x--x 6 mysql mysql 4096 Dec 3 23:13 .
drwxr-xr-x. 42 root root 4096 Dec 3 22:31 ..
-rw-r----- 1 root root 56 Mar 2 2019 auto.cnf
-rw-r----- 1 mysql mysql 0 Dec 3 22:55 binlog.index
-rw------- 1 root root 1675 Mar 2 2019 ca-key.pem
-rw-r--r-- 1 root root 1107 Mar 2 2019 ca.pem
-rw-r--r-- 1 root root 1107 Mar 2 2019 client-cert.pem
-rw------- 1 root root 1675 Mar 2 2019 client-key.pem
-rw-r----- 1 root root 277 Mar 27 2019 ib_buffer_pool
-rw-r----- 1 root root 79691776 Apr 4 2019 ibdata1
-rw-r----- 1 root root 50331648 Apr 4 2019 ib_logfile0
-rw-r----- 1 root root 50331648 Mar 2 2019 ib_logfile1
-rw-r----- 1 root root 12582912 Apr 4 2019 ibtmp1
drwxr-x--- 2 root root 4096 Mar 2 2019 mysql
srwxrwxrwx 1 root root 0 Apr 1 2019 mysql.sock
-rw------- 1 root root 6 Apr 1 2019 mysql.sock.lock
drwxr-x--- 2 root root 4096 Mar 2 2019 performance_schema
-rw------- 1 root root 1679 Mar 2 2019 private_key.pem
-rw-r--r-- 1 root root 451 Mar 2 2019 public_key.pem
-rw-r--r-- 1 root root 1107 Mar 2 2019 server-cert.pem
-rw------- 1 root root 1679 Mar 2 2019 server-key.pem
drwxr-x--- 2 root root 12288 Mar 2 2019 sys
drwxr-x--- 2 root root 4096 Mar 27 2019 wp

chown mysql:mysql /var/lib/mysql -R

三:使用服务器初始化数据目录,包括mysql包含初始MySQL授权表的数据库,这些数据库确定如何允许用户连接到服务器
mysqld --initailize --user=mysql

四,
[root@izj6c3njvldcpf6rgj4srvz dava]# systemctl start mysqld
[root@izj6c3njvldcpf6rgj4srvz dava]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2019-12-03 23:15:35 CST; 22s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1529 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1556 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─1556 /usr/sbin/mysqld
^C
[root@izj6c3njvldcpf6rgj4srvz dava]#