CentOS8中安装MySql8.0.26丨【绽放吧!数据库】

举报
lwq1228 发表于 2021/08/16 15:01:01 2021/08/16
【摘要】 CentOS8中安装MySql8.0.26最详细操作手册,包括连接Navicat Premium报错解决。

一、下载MySql8.0.26

1、打开官网地址:

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

2、按下图选择下载相应版本的Mysql(我这里选择的是64位的Mysql),点击Download:

3、不用登陆,直接点击““No thanks,just start my downlaod.”即可下载

4、下载完成后软件如下:

二、安装MySql8.0.26

1、添加mysql用户

添加mysql用户组和用户

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql

因为用户只需要用于授权而不是登录,所以useradd命令使用 -r-s /bin/false选项来创建一个对服务器主机没有登录权限的用户。

2、安装依赖包

(1)安装lrzsz工具包,该工具包用于上传文件

[root@localhost opt]# yum install -y lrzsz

安装成功如下图所示:

(2)安装libaio依赖包

查询是否安装libaio依赖包:

[root@localhost ~]# yum search libaio

如果已经安装,查询结果如下:

如果未安装,执行以下命令进行安装:

[root@localhost ~]# yum install libaio

(3)安装libncurses*依赖包

[root@localhost ~]# yum install libncurses*

中间出提示输入y,安装成功如图:

3、上传mysql安装包

(1)在服务器/opt文件夹下定义一个software文件夹和module文件夹用于存放软件安装包和解压的安装文件

[root@localhost ~]# cd /opt/
[root@localhost opt]# mkdir software
[root@localhost opt]# mkdir module

(2)使用rz命令将下载的mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz上传到服务器

[root@localhost opt]# cd software/
[root@localhost software]# rz

输入rz命令回车,弹出文件选择框,选择mysql安装包,点击打开,即开始上传文件。

(3)上传完成后查看文件

[root@localhost software]# ll

(4)解压mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz到目录/opt/module下面

[root@localhost software]# tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /opt/module/

(5)进入到目录/opt/module下面,将解压的文件夹名mysql-8.0.26-linux-glibc2.12-x86_64重命名为mysql8

[root@localhost software]# cd /opt/module/

[root@localhost module]# mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql8

(6)进入mysql解压后的目录mysql8目录,并创建存放mysql数据的目录

[root@localhost ~]# cd /opt/module/mysql8/
[root@localhost mysql8]# mkdir data

(7)修改创建的data文件夹的权限

[root@localhost mysql8]# chown mysql:mysql data
[root@localhost mysql8]# chmod 750 data

4、配置mysql环境变量

编辑/etc/profile文件

[root@localhost ~]# vim /etc/profile

在文件末尾添加如下内容:

export MYSQL_HOME=/opt/module/mysql8
export PATH=$PATH:$MYSQL_HOME/bin

编辑完成后,重载/etc/profile文件:

[root@localhost ~]# source /etc/profile

5、初始化mysql

注意:如果需要数据库的表对大小写不敏感,在初始化mysql时务必加上--lower-case-table-names=1这个参数,因为官网明文提示只有在初始化的时候设置 lower_case_table_names=1才有效。

[root@localhost ~]# mysqld --user=mysql --basedir=/opt/module/mysql8 --datadir=/opt/module/mysql8/data --initialize --lower-case-table-names=1

红色框内的是mysql数据库登录的临时密码,保存备用(DX=O1wdw2v!f),每个人安装生成的临时密码不一样。

6、配置mysql

(1)修改Mysql配置文件

[root@localhost ~]# cd /opt/module/mysql8/support-files/
[root@localhost support-files]# vim mysql.server 
basedir=/opt/module/mysql8
datadir=/opt/module/mysql8/data

# Default value, in seconds, afterwhich the script should timeout waiting
# for server start. 
# Value here is overriden by value in my.cnf. 
# 0 means don't wait at all
# Negative numbers mean to wait indefinitely
service_startup_timeout=900

# Lock directory for RedHat / SuSE.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"

# The following variables are only set for letting mysql.server find things.

# Set some defaults
mysqld_pid_file_path=/opt/module/mysql8/data/mysqld_pid
if test -z "$basedir"
then
  basedir=/opt/module/mysql8
  bindir=/opt/module/mysql8/bin
  if test -z "$datadir"
  then
    datadir=/opt/module/mysql8/data
  fi
  sbindir=/opt/module/mysql8/bin
  libexecdir=/opt/module/mysql8/bin
else
  bindir="$basedir/bin"
  if test -z "$datadir"
  then
    datadir="$basedir/data"
  fi
  sbindir="$basedir/sbin"
  libexecdir="$basedir/libexec"
fi

修改的值如下图所示:

(2)设置mysql开机启动

(1)将上述修改的配置文件拷贝至/etc/init.d文件夹下并命名为mysqld

[root@localhost ~]# cp /opt/module/mysql8/support-files/mysql.server /etc/init.d/mysqld

(2)给新复制的文件授权

[root@localhost ~]# chmod 755 /etc/init.d/mysqld

(3)将mysql服务加到系统服务中

[root@localhost ~]# chkconfig --add mysqld

(4)设置开机自启动

[root@localhost ~]# chkconfig mysqld on

(3)修改my.cnf文件

注意:mysql8.0.26版本并没有这个my.cnf文件,因此需要直接创建。

[root@localhost ~]# vim /etc/my.cnf

在文件中输入以下内容:

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
basedir=/opt/module/mysql8
datadir=/opt/module/mysql8/data
socket=/tmp/mysql.sock
user=mysql
port=3306
character_set_server=utf8
# symbolic-links=0
# bind-address=0.0.0.0
lower_case_table_names=1

[mysqld_safe]
log-error=/opt/module/mysql8/data/error.log
pid-file=/opt/module/mysql8/data/mysqld.pid
tmpdir=/tmp

7、启动mysql

(1)启动mysql服务

[root@localhost ~]# service mysqld start

启动成功如图:

(2)查看mysql服务状态

[root@localhost ~]# service mysqld status

(3)停止mysql服务

[root@localhost ~]# service mysqld stop

8、登录mysql

(1)登录mysql

[root@localhost ~]# mysql -uroot -p

输入第5步初始化mysql时的临时密码进行登录:

(2)修改初始化用的临时密码

输入use mysql命令切换数据库报错:

解决办法:通过如下命令修改root用户的密码:

alter user 'root'@'localhost' identified by 'root';

刷新:

flush privileges;

至此,mysql8.0.26成功安装完成。

三、配置Navicat Premium连接

1、连接错误一

Navicat Premium配置远程连接mysql出现10060 “Unkown error”错误:

解决办法如下:

(1)查看防火墙状态

[root@localhost ~]# systemctl status firewalld.service 

显示如下图则表示防火墙是开启状态:

(2)可以通过直接关闭防火墙的方式允许外部Navicat Premium直接连接

[root@localhost ~]# systemctl stop firewalld.service 

(3)重新开启防火墙

[root@localhost ~]# systemctl start firewalld.service 

(4)如果不关闭防火墙,可以通过放行3306端口进行解决

①查看已开放的端口列表

[root@localhost ~]# firewall-cmd --zone=public --list-ports

显示为空,表示未放行任何端口。

②或者直接查看某一端口的开放状态

[root@localhost ~]# firewall-cmd --query-port=3306/tcp

显示no,表示未开放。

③开放某端口(开放后需要要重启防火墙才生效)

[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

显示success,表示端口开放成功。

④使配置立即生效

[root@localhost ~]# firewall-cmd --reload

⑤如果某一端口不用了,可以通过如下命令关闭端口,关闭后也需要执行④的命令使配置立即生效

[root@localhost ~]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent  

⑥防火墙其它命令

# 开机启动防火墙
[root@localhost ~]# systemctl enable firewalld.service 

# 禁止防火墙开机启动
[root@localhost ~]# systemctl disable firewalld.service 

2、连接错误二

防火墙问题解决后,Navicat Premium配置远程连接Mysql数据库报“Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server”错误,这是由于Mysql配置了不支持远程连接引起的。

解决办法如下:

(1)在安装Mysql数据库的主机上使用root用户登录mysql

[root@localhost ~]# mysql -uroot -p

(2)依次执行以下命令,查看root用户信息

mysql> use mysql;
mysql> select host from user where user='root';

从查询结果中可以看到当前主机配置信息为localhost。

(3)将host设置为通配符%

host列指定了允许用户登录所使用的IP,比如user=root,host=192.168.1.1,这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root,host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。

mysql> update user set host='%' where user='root';

(4)host修改完成后记得执行flush privileges使配置立即生效

mysql> flush privileges;

3、连接错误三

Navicat Premium配置远程连接Mysql数据库报“2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded”错误:

原因是:mysql8.0数据库使用的加密方式是caching_sha2_password,Navicat和SQLyog客户端软件其实是不支持新的身份验证,也就是说新的身份验证找不到caching_sha2_password,所以只需要把登录密码加密规则改回mysql_native_password即可(Navicat12及以前版本可能有这个问题,我是用的是Navicat15,没有出现这个问题)。

(1)在安装Mysql数据库的主机上使用root用户登录mysql

[root@localhost ~]# mysql -uroot -p

(2)修改加密规则

mysql> alter user 'root'@'%' identified by 'password' password expire never;

(3)更新用户密码

mysql> alter user 'root'@'%' identified with mysql_native_password by 'password';

(4)刷新权限

mysql> flush privileges;

(5)重置密码

alter user 'root'@'%' identified by 'root';

【绽放吧!数据库】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/285617

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。