CentOS 7.8 安装mysql8.0步骤

参考:

https://www.cnblogs.com/yunian139/p/13468465.html
https://blog.csdn.net/gispipi/article/details/106494367

1 安装前清理工作(卸载mysql)

1.1 清理原有的mysql数据库;

使用以下命令查找出安装的mysql软件包和依赖包:

rpm -pa | grep mysql
或者
yum list installed mysql*

使用以下命令依次删除上面的程序

yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

find / -name mysql

根据需求使用以下命令 依次 对配置文件进行删除

1.2 删除MariaDB的文件

由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.

使用rpm 命令查找出要删除的mariadb文件;

2 安装mysql

2.1 下载软件包rpm文件

文件下载到Centos/usr/local/mysql文件夹下;

cd /usr/local
mkdir mysql
cd mysql
wget  https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

2.2 安装 yum repo文件并更新 yum 缓存

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

执行结果:
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

更新 yum 命令

yum clean all
yum makecache

2.3 使用 yum安装mysql

当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;

第一步: 查看mysql yum仓库中mysql版本,使用如下命令

yum repolist all | grep mysql

可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;

第二步 使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态,根据需要安装的版本修改

yum-config-manager --disable mysql80-community #关闭8.0版本
yum-config-manager --enable mysql57-community #开启5.7版本

2.4 安装mysql

命令如下:

yum install mysql-community-server

2.5 开启mysql 服务

systemctl start mysqld.service

2.6 获取初始密码登录mysql

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;

cat /var/log/mysqld.log | grep password
A temporary password is generated for root@localhost: ?/rI,c:e-00y
?/rI,c:e-00y 就是密码

使用初始密码登录mysql

mysql -u root -p  #会提示输入密码

修改初始密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';#注意位数和种类至少大+写+小写+符号+数字

3.开启mysql远程服务:

外网 Navicat 连接 Mysql
修改mysql数据库下的user表中host的值
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"登录mysql数据库 执行如下命令:

mysql -u root -p
use mysql;
update user set host='%' where user='root';
FLUSH PRIVILEGES;

4.CentOS8 Mysql8 更改数据存储路径(datadir)

4.1 新建数据存放的目录,拷贝原数据库内容到新建目录

新建目录

mkdir /app/mysql

拷贝

cp -a -R /var/lib/mysql/* /app/mysql/

将目录授权给mysql用户组

chown mysql:mysql /app/mysql

4.2 修改mysql配置文件

关掉mysql服务

systemctl stop mysqld.service

修改配置文件,修改datadir socket

vim /etc/my.cnf

修改文件内容

注释原来的配置
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
新增配置
datadir=/app/mysql
socket=/app/mysql/mysql.sock

4.3 重新初始化配置内容

mysqld --defaults-file=/etc/my.cnf  --initialize --user=mysql

4.4 启动服务

命令如下:

systemctl start mysqld

查看状态

systemctl status mysqld.service

显示如下:

● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-05-27 14:57:50 CST; 21min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 5940 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 5966 (mysqld)
   Status: "Server is operational"
   CGroup: /system.slice/mysqld.service
           └─5966 /usr/sbin/mysqld

May 27 14:57:50 gyl-bff-all01 systemd[1]: Starting MySQL Server...
May 27 14:57:50 gyl-bff-all01 systemd[1]: Started MySQL Server.

4.5 用户登录

mysql -uroot -p 输入密码;
提示错误。SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

重新建立连接

ln -s /app/mysql/mysql.sock /var/lib/mysql/mysql.sock (mysql.sock是服务启动时候生成的文件)

4.6 再次登录,成功

查看存储路径

show global variables like '%datadir%';

4.7 mysql8.0 基本命令

mysql -u username -p #登录mysql
quit #退出mysql 
systemctl start mysqld.service  #启动mysql
systemctl stop mysqld.service #结束
systemctl restart mysqld.service #重启
systemctl enable mysqld.service #开机自启
select version(); #查看mysql版本

4.8 Navicat 连接MySQL 8.0.11 出现2059错误

ALTER USER 'user'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
posted @ 2021-05-27 16:01  lxpaopao  阅读(386)  评论(0编辑  收藏  举报