CentOS8中安装MySql8.0.26丨【绽放吧!数据库】
一、下载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
- 点赞
- 收藏
- 关注作者
评论(0)