一、缘起
之前在百度云服务器上的安装的MYSQL死活登陆不进去了,所以安装将其卸载重新安装了MYSQL8.0.19
,算是一个比较新的版本,遇到了许多坑,最终成功安装。特此记录。
二、步骤
1)卸载
在安装MYSQL之前,先要检查是否删除干净了之前安装的MYSQL的文件,使用rpm -qa | grep -i mysql
查询,有结果输出来,说明没有删除彻底;删除之前,先停掉MySQL的服务,使用systemctl stop mysqld
或者service mysql stop
命令。使用find
命令或者whereis
命令查询MySQL相关的文件,这里要__注意__有些软件有MySQL作为内核模块,其中有MySQL这种文件夹,这种是__不能删除__的。接下来开始卸载MySql相关组件,使用rpm -ev xxx
命令卸载,如果在卸载过程中出现提示无法卸载,如果是缺少依赖关系导致的,使用rpm -ev --nodeps xxx
命令,--nodeps
是安装不检查依赖关系。卸载完成后开始删除MySql相关文件。删除完毕后,使用rpm -qa | grep -i mysql
查询,如果没有任何显示说明卸载成功。
2)安装
- 第一步 下载镜像
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
- 第二步 安装镜像
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
- 第三步 升级系统上MYSQL软件包
yum update mysql-server
或者yum update
- 第四步 安装MySql服务
yum install mysql-server
3)使用
- MySql文件权限设置
对MySql赋予/var/lib/mysql
的权限,chown mysql:mysql -R /var/lib/mysql
- 初始化MySql服务
mysqld --initialize
- 启动MySql
systemctl start mysqld
systemctl enable mysqld
如果在启动过程中,出现Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
的提示,这样解决
chown mysql:mysql -R /var/lib/mysql
,原因:mysql需要权限向该文件夹下写入数据,如果没有权限则会报错,导致启动失败。 - 查看Mysql版本
mysqladmin --version
- 设置数据库密码
数据库在安装完成后不会默认设置密码,需要我们自己设置密码。可以采用mysqladmin -u root password "密码"
,可能以前装过MySql的机器上会出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
这种错误,这种情况下,使用其他方法设置密码,解决方案如下:
(1) 停止mysql服务
systemctl stop mysqld
(2) 用不检查权限的方式启动
mysql mysqld --skip-grant-tables & 或者 mysqld --user=root --skip-grant-tables &
(3) 登录mysql
mysql -u root -p 或 mysql
(4) 更改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
(5) 如果出现错误,flush privileges
;刷新权限即可
(6) 退出,登录
mysqlmysql -u root -p
4)拓展(开启MySql远程连接)
- 登录数据库
- 创建用户用来远程连接,由于安装的MySql版本比较新,所以在创建用户并授权时,不能像低版本那样一句搞定
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
,高版本在授权时不需要IDENTIFIED BY '密码' WITH GRANT OPTION
,只需GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'
就可以了。正确写法:create user 'test'@'%' identified by '密码'; grant all privileges on *.* to 'test'@'%'
。 - 然后
flush privileges
;刷新权限即可。