阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

安装 MySQL 数据库

Step 00

如果你安装了旧版本的 MySQL 如:5.6/7,那么要先移除 5.6/7 的内容,数据怎么迁移,没研究;只谈删除。

为什么要删除?因为本文要安装的是 8.0 版本,如果没有移除在安装 8.0 的时候会提示 5.6/7 与 8.0 会冲突,无法进行安装。

查看已经安装的 MySQL

[root@~]# yum list installed | grep "mysql" mysql-community-client.x86_64        5.7.17-1.el7               @mysql57-community mysql-community-common.x86_64        5.7.17-1.el7               @mysql80-community mysql-community-libs.x86_64          5.7.17-1.el7               @mysql57-community mysql-community-server.x86_64        5.7.17-1.el7               @mysql57-community mysql80-community-release.noarch     el7-9                      installed 

使用 yum 进行移除即可

[root@~]# yum remove mysql-community-client mysql-community-common mysql-community-libs mysql-community-server [root@~]# rm -rf /var/lib/mysql  [root@~]# rm /etc/my.cnf  

查看 rpm 安装的包

// rpm -qa | grep -i mysql 效果一样 [root@~]# rpm -qa | grep "mysql" mysql-community-client-5.7.17-1.el7.x86_64 mysql-community-libs-5.7.17-1.el7.x86_64 mysql-community-common-5.7.17-1.el7.x86_64 mysql57-community-release-el7-9.noarch mysql-community-server-5.7.17-1.el7.x86_64 

使用 rpm 进行移除

[root@~]# rpm -e mysql-community-client-5.7.17-1.el7.x86_64 [root@~]# rpm -e mysql-community-libs-5.7.17-1.el7.x86_64 [root@~]# rpm -e mysql-community-common-5.7.17-1.el7.x86_64 [root@~]# rpm -e mysql57-community-release-el7-9.noarch [root@~]# rpm -e mysql-community-server-5.7.17-1.el7.x86_64 

删除配置文件

[root@~]# rm –rf /usr/my.cnf [root@~]# rm -rf /root/.mysql_sercret 

删除服务

[root@~]# systemctl list-unit-files | grep "mysql" mysqld.service                                enabled  [root@~]# chkconfig --del mysqld 

删除分散的文件

[root@~]# whereis mysql mysql: /usr/share/mysql  [root@~]# rm -rf /usr/share/mysql 
[root@~]# rm -rf /var/log/mysqld.log [root@~]# rm-rf /var/run/mysql/ 

Step 01

先去 MySQL 的官网 : https://dev.mysql.com

找到 yum 的安装源

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

mysql yum

向下滚动网页,复制要下载的文件名

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

mysql

从 repo 里面找到它

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

mysql 确认

回到 Xsell 6 里面,使用 wget 下载到本地

[root@~]# wget https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm mysql80-community-release-el7-1.noarch.rpm 

写入 yum localinstall 里面

[root@~]# sudo yum localinstall mysql80-community-release-el7-1.noarch.rpm 

查看是否成功写入,如果有 mysql 的库就成功了

[root@~]# ls /etc/yum.repos.d | grep "mysql" mysql-community.repo mysql-community-source.repo 

查看开启的 mysql 安装源

[root@~]# yum repolist enabled | grep "mysql.*-community.*" !mysql-connectors-community/x86_64 MySQL Connectors Community                 65 !mysql-tools-community/x86_64      MySQL Tools Community                      69 !mysql80-community/x86_64          MySQL 8.0 Community Server                 33  

开始进行安装,文件很大 [1.7 G],慢慢等吧,如果最后出现 Complete! 就成功了

[root@~]# sudo yum install mysql-community-server 

启动服务

[root@~]# systemctl start mysqld.service 

如果出现了错误,第一次启动都是这样的……

[root@~]# systemctl start mysqld.service Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.  

按照上面提示的两个命令进行操作,你会发现什么有用的信息都没有。

所以我们要打开日志信息

[root@~]# cat /var/log/mysqld.log 

你会看到其中有两条 ERROR 信息

[ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory) [ERROR] Can't start server: can't create PID file: No such file or directory  

创建文件

[root@~]# mkdir -p /var/run/mysqld/ 

重新启动,恭喜你喜提新坑,这次是权限问题

[ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied) ERROR] Can't start server: can't create PID file: Permission denied  

这里的原因是因为文件夹是由 root 创建的,权限是 root ,mysql 如果要操作就要拥有权限

[root@~]# ls -la /var/run/ | grep "mysqld" drwxr-xr-x   2 root root     40 Sep  6 12:46 mysqld  // 改成 mysql  [root@~]# chown mysql.mysql /var/run/mysqld/  [root@~]# ls -la /var/run/ | grep "mysqld" drwxr-xr-x   2 mysql mysql    40 Sep  6 12:48 mysqld 

重新启动服务

[root@~]# service restart mysqld.service  [root@~]# systemctl status mysqld.service ● mysqld.service - MySQL Server    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)    Active: active (running) since Wed 2018-09-05 18:51:50 CST; 17h ago      Docs: man:mysqld(8)            http://dev.mysql.com/doc/refman/en/using-systemd.html   Process: 9911 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)  Main PID: 9933 (mysqld)    Status: "SERVER_OPERATING"    CGroup: /system.slice/mysqld.service            └─9933 /usr/sbin/mysqld  Sep 05 18:51:48 izwz9dnfbgdn5tleje5eitz systemd[1]: Starting MySQL Server... Sep 05 18:51:50 izwz9dnfbgdn5tleje5eitz systemd[1]: Started MySQL Server.  

看到 Active: active (running) 就表明成功了。

进入 mysql 页面,先找临时密码

[root@~]# grep 'temporary password' /var/log/mysqld.log 2018-09-05T10:03:00.388929Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2rlYx79fo;pU  

2rlYx79fo;pU 它就是密码。

使用这个密码登录 mysql

[root@~]# mysql -uroot -p Enter password:  // 复制粘贴就行了 Welcome to the MySQL monitor.  Commands end with ; or g. Your MySQL connection id is 10 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>  

输入一个指令尝试一下,如果看到这个信息,证明密码过期了

mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

需要重新设置密码才能访问:

...... mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '**1my/'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 

上面你如果密码过于简单,那么就会出错

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 

按要求重新设置

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '**1My/'; Query OK, 0 rows affected (0.09 sec) 

设置密码永不过期

...... mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.06 sec) 

exit 退出 mysql

...... mysql> exit  Bye 

文档的内容,认真看看吧!

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

mysql set password

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

mysql set password invaild 故意截全的

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:MySQL 8.0

set password EXPIRE NEVER

大功告成!

点赞