centos7 linux 下的mysql8版本DB安装

目录

一、查找并卸载原有的mysql数据库

二、查看mariadb的相关包并卸载

三、安装mysql数据库

四、开启mysql的远程访问权限


参考的别人的文章:https://blog.csdn.net/qq_40181063/article/details/90713153

一、查找并卸载原有的mysql数据库

1.使用 rpm -qa | grep mysql 命令查找mysql数据库软件包及依赖包;

若没有任何显示则证明没有相关的mysql数据库;

若显示了相关的软件包及依赖包,使用 yum remove xxx 命令依次删除显示的包;注意:xxx为显示的软件包及依赖包包名;

2.使用 find / -name mysql 命令查找原有mysql数据库的相关配置文件;

可能显示如下:

/etc/selinux/targeted/active/modules/100/mysql

/usr/lib64/mysql

/usr/share/mysql

然后根据需求情况使用命令 rm -rf  xxx 依次删除以上文件,例如:rm -rf /etc/selinux/targeted/active/modules/100/mysql;

二、查看mariadb的相关包并卸载

1.使用 rpm -qa | grep mariadb 命令查看;

显示为:mariadb-libs-5.5.56-2.el7.x86_64

2.使用 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 命令卸载;

3.使用 rm /etc/my.cnf 删除my.cnf文件(这个文件可能不存在,没关系的),防止对新安装的数据库有冲突,后面会再新建一个my.cnf文件;

三、安装mysql数据库

mysql官网:https://dev.mysql.com/downloads/mysql/

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

1.使用wget命令从官网下载最新版本(即8.0.16 64位),其余版本操作一样,需自行到官网下载;

命令为:wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

下载后文件为:mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

2.解压缩包,命令如下;

xz –d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz

tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar

3.给包重命名为mysql,并安装到/usr/local/目录下;

mv mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql

4.检查mysql组和用户是否存在,如无创建,

cat /etc/group | grep mysql

cat /etc/passwd | grep mysql

创建mysql用户组

groupadd mysql

useradd -g mysql mysql

修改用户mysql的密码为mysql(自己设定)

passwd mysql

5.进入mysql目录并创建data目录;

cd /usr/local/mysql

mkdir data

6.赋权限给相关目录;

先返回上级目录,防止提示找不到对应目录

cd ..

chmod -R 777 /usr/local/mysql

chmod -R 777 /usr/local/mysql/data

7.将mysql目录的权限授给mysql用户和mysql组;

chown -R mysql:mysql /usr/local/mysql

8.新建mysql配置文件 my.cnf

vi /etc/my.cnf

配置文件内容为;

[mysqld]
skip-name-resolve

#设置3306端口
port=3306

# 设置mysql的安装目录
basedir=/opt/mysql/mysql8
# 设置mysql数据库的数据的存放目录
datadir=/opt/mysql/mysql8/data

# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#lower_case_table_names=1 #该行必须注释,否则会出现 without updating PID file....
max_allowed_packet=16M

socket=/var/lib/mysql/mysql.sock

[client]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
socket=/var/lib/mysql/mysql.sock

[mysql]
#设置mysql客户端默认字符集
default-character-set=UTF8MB4
socket=/var/lib/mysql/mysql.sock

9.进入mysql 安装目录下:

 cd/usr/local/mysql/bin/

安装MySQL,并记住随机生成的密码,每次生成都不一样:

./mysqld --initialize --console

==================以下内容搭建时未遇到==========

这里可能会出现如下错误(我在配置阿里云服务器时遇到的,原因可能是新的系统,没有安装所需的依赖)

解决办法就是根据提示安装所需依赖:这里我安装后就可以了,没有继续报错

======================END===========================

10.修改config配置,修改SELINUX=disabled

vi /etc/selinux/config

11.创建软连接(实现可直接命令行执行mysql)

ln -s /usr/local/mysql/bin/mysql /usr/bin(软连接必须建在/usr/bin,否则不生效)

12.mysqld配置,拷贝启动文件到/etc/init.d/下并重命名为mysqld

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

增加执行权限

chmod 777 /etc/init.d/mysqld

检查自启动项列表中没有mysqld

chkconfig --list mysqld

如果没有就添加mysqld

chkconfig --add mysqld

设置开机启动

chkconfig mysqld on

启动测试

service mysqld start

接着我们使用前面随机生成的密码登录mysql数据库,再重置密码;

mysql -u root -p(回车后输入前面的随机密码)此处的密码就是第9步中的生成的密码

如上图,登录成功;

在mysql中修改密码为123456;

set PASSWORD = '123456';

四、开启mysql的远程访问权限

创建用户root设置密码123456

create 'root'@'%' identified by '123456';

给用户授权

grant all on *.* to 'root'@'%' with grant option;

flush privileges;

退出exit

重新启动mysql即可

service mysql restart


出现错误:很多都是mysql的配置文件中已存在的路径,由于没有在服务器中出现导致搜索不到报错;

1.Linux安装MySQL时候出现log-error set to '/var/log/mariadb/mariadb.log', however file don't exists.

发现并没有/var/log/mariadb/mariadb.log这个路径,那我们就创建, 并给mysql用户授权即可

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql  /var/log/mariadb/

再输入开启mysql服务, 搞定!

出现故障排查:

端口是否打开

lsof -i:3306

mysql服务是否运行

service mysqld status

检查mariadb,同样检查服务是否运行

service mariadb status 

查看mysql.sock文件是否存在

ls /var/lib/mysql/mysql.sock

================================================================================================

参考:

查看防火墙状态
    firewall-cmd --state
如果没有开启,则开启

开启防火墙: systemctl start firewalld.service

查看监听的端口: firewall-cmd --list-port

 添加3306端口监听

   firewall-cmd --zone=public --add-port=3306/tcp --permanent

刷新防火墙设置

   firewall-cmd --reload

navicate在连接时出现的错误:

1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client。

出现上述问题的原因是:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 把mysql用户登录密码加密规则还原成mysql_native_password

1.查看MYSQL数据库中所有用户

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

2.修改加密规则,因为最新版的加密规则好像不一样,安装的过程当中是有提示的。

mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;

3.修改用户的认证规则

mysql> alter user '用户名'@'%' identified with mysql_native_password by '密码';

例如我的用户名是admin,密码是123456,那么,我修改的规则如下

mysql> alter user 'admin'@'%' identified with mysql_native_password by '123456';

其中还有'用户名'@'%'和'用户名'@'localhost'的区别,一个是任意连接,一个是本地连接。

4.刷新权限

mysql> flush privileges;

5.停止并重启服务

service mysqld restart

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值