Linux实战——MySQL5.7和MySQL8.0分别在CentOS和Ubuntu中的安装配置过程
Posted 会不了一点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux实战——MySQL5.7和MySQL8.0分别在CentOS和Ubuntu中的安装配置过程相关的知识,希望对你有一定的参考价值。
Linux实战:部署各类软件
MySQL5.7版本在CentOS系统安装
安装(需要root权限或者sudo提权)
-
配置yum仓库
# 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:
- 导入MySQL仓库的密钥
- 配置MySQLQ的yum仓库
-
使用yum安装MySQL
# yum安装Mysql yum -y install mysql-community-server
-
安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
MySQL安装完成后,会自动配置为名称叫做:
mysqld
的服务,可以被systemctl所管理 -
检查MySQL的运行状态
systemctl status mysqld
配置
主要配置管理员用户root的密码以及配置允许远程登录的权限。
-
获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 cat /var/log/mysqld.log | grep "temporary password"
【返回的结果中,…root@localhost:xxxxxx,这个xxxxxx即root密码】
-
登陆MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆 # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
-
修改root用户密码
# 在MySQL控制台内执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号
-
[扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
# 如果你想设置简单密码,需要降低Mysql的密码安全级别 set global validate_password_policy=LOW; # 密码安全级别低 set global validate_password_length=4; # 密码长度最低4位即可 # 然后就可以用简单密码了(这里使用简单密码,为了方便,生产中不要这样) ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
-
[扩展],配置root运行远程登录
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 授权root远程登录 grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option; # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址 # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同 # 刷新权限,生效 flush privileges;
-
退出MySQL控制台页面
# 退出命令 exit # 或者通过快捷键退出:ctrl + d
-
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
MySQL8.0版本在CentOS系统安装
安装
-
配置yum仓库
# 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装Mysql8.x版本 yum库 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
-
使用yum安装MySQL
# yum安装Mysql yum -y install mysql-community-server
-
安装完成后,启动MySQL并配置开机自启动
systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
MySQL安装完成后,会自动配置为名称叫做:
mysqld
的服务,可以被systemctl所管理 -
检查MySQL的运行状态
systemctl status mysqld
配置
主要修改root密码和允许root远程登录
-
获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log
-
登录MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆 # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
-
修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
-
[扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
set global validate_password.policy=0; # 密码安全级别低 set global validate_password.length=4; # 密码长度最低4位即可
-
允许root远程登录,并设置远程登录密码
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
-
退出MySQL控制台页面
# 退出命令 exit # 或者通过快捷键退出:ctrl + d
-
检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
MySQL5.7版本在Ubuntu(WSL环境)系统安装
安装操作需root权限,你可以:
-
通过 su,切换到root用户
-
或在每一个命令前,加上sudo,用来临时提升权限
安装
-
下载apt仓库文件
# 下载apt仓库的安装包,Ubuntu的安装包是.deb文件 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
-
配置apt仓库
# 使用dpkg命令安装仓库 dpkg -i mysql-apt-config_0.8.12-1_all.deb
弹出框中选择:
ubuntu bionic
(Ubuntu18.04系统的代号是bionic,选择18.04的版本库用来安装)弹出框中选择:
MySQL Server & Cluster
弹出框中选择:
mysql-5.7
最后选择:
ok
-
更新apt仓库的信息
# 首先导入仓库的密钥信息 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29 # 更新仓库信息 apt update
-
检查是否成功配置MySQL5.7的仓库
apt-cache policy mysql-server
看到如图所示字样,即成功
-
安装MySQL5.7
# 使用apt安装mysql客户端和mysql服务端 apt install -f -y mysql-client=5.7* mysql-community-server=5.7*
弹出框中输入root密码并选择ok,密码任意
再次输入root密码确认
-
启动MySQL
/etc/init.d/mysql start # 启动 /etc/init.d/mysql stop # 停止 /etc/init.d/mysql status # 查看状态
-
对MySQL进行初始化
# 执行如下命令,此命令是MySQL安装后自带的配置程序 mysql_secure_installation # 可以通过which命令查看到这个自带程序所在的位置 root@DESKTOP-Q89USRE:~# which mysql_secure_installation /usr/bin/mysql_secure_installation
-
输入密码:
-
是否开启密码验证插件,如果需要增强密码安全性,输入
y
并回车,不需要直接回车(这里选择直接回车了) -
是否更改root密码,需要输入
y
回车,不需要直接回车(这里选择直接回车了) -
是否移除匿名用户,移除输入
y
回车,不移除直接回车(这里选择移除了) -
是否进制root用户远程登录,禁止输入
y
回车,不禁止直接回车(这里选择直接回车了) -
是否移除自带的测试数据库,移除输入
y
回车,不移除直接回车(这里选择直接回车了) -
是否刷新权限,刷新输入
y
回车,不刷新直接回车(这里选择刷新了)
-
-
登陆MySQL
mysql -uroot -p # 输入密码即可登陆成功
至此,在Ubuntu上安装MySQL5.7版本成功。
MySQL8.0版本在Ubuntu(WSL环境)系统安装
最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本
所以直接可以通过apt安装即可
安装操作需root权限,你可以:
-
通过 su,切换到root用户
-
或在每一个命令前,加上sudo,用来临时提升权限
安装
-
如果已经安装过MySQL5.7版本,需要卸载仓库信息哦
# 卸载MySQL5.7版本 apt remove -y mysql-client=5.7* mysql-community-server=5.7* # 卸载5.7的仓库信息 dpkg -l | grep mysql | awk 'print $2' | xargs dpkg -P
-
更新apt仓库信息
apt update
-
安装mysql
apt install -y mysql-server
-
启动MySQL
/etc/init.d/mysql start # 启动 /etc/init.d/mysql stop # 停止 /etc/init.d/mysql status # 查看状态
-
登陆MySQL设置密码
# 直接执行:mysql mysql
-
设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
-
退出MySQL控制台
exit
-
对MySQL进行初始化
# 执行如下命令,此命令是MySQL安装后自带的配置程序 mysql_secure_installation # 可以通过which命令查看到这个自带程序所在的位置 root@DESKTOP-Q89USRE:~# which mysql_secure_installation /usr/bin/mysql_secure_installation
-
输入密码:
-
是否开启密码验证插件,如果需要增强密码安全性,输入
y
并回车,不需要直接回车(这里选择直接回车) -
是否更改root密码,需要输入
y
回车,不需要直接回车(这里选择直接回车) -
是否移除匿名用户,移除输入
y
回车,不移除直接回车(这里选择移除) -
是否进制root用户远程登录,禁止输入
y
回车,不禁止直接回车(这里选择直接回车) -
是否移除自带的测试数据库,移除输入
y
回车,不移除直接回车(这里选择直接回车) -
是否刷新权限,刷新输入
y
回车,不刷新直接回车(这里选择刷新)
-
-
重新登陆MySQL(用更改后的密码)
mysql -uroot -p
至此,在Ubuntu上安装MySQL5.7版本成功。
Linux安装下载mysql8.0版本实战详细教程
Linux安装下载mysql8.0版本实战详细教程
1.进入 /usr/local下,根据需要的版本下载mysql:wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.30-el7-x86_64.tar.gz,不通版本修改命令里的版本号
没有wget命令的可以安装此命令 sudo yum -y install wget
也可以下载完自己上传到linux里面
2.解压下载的包,tar zxvf mysql-8.0.30-el7-x86_64.tar.gz,解压完成后将文件夹重命名为 mysql(为了好看)
3.进入mysql文件夹,创建data文件夹用来存储文件
4.创建用户组以及用户和密码
groupadd mysql
useradd -g mysql mysql
用户组名以及用户名和密码为了方便记都用mysql就行,当然也可以自己叫什么都行
5.授权刚刚创建的 mysql 用户组对mysql文件夹的操作权限
chown -R mysql.mysql /usr/local/mysql
chmod 777 /usr/local/mysql/mysql/data
6.编辑 my.cnf 文件
vi /etc/my.cnf 或者 vim /etc/my.cnf (编辑命令的使用不用说了吧)
下面的配置为了防止出错,就按照这个写吧
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
lower_case_table_names=1(注:设置数据库表名大小写不敏感,如果想要区分大小写,这个不加,默认是0,所以不用加)
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’(注:MySQL8.0 配置中 sql_mode 配置了 only_full_group,需要 GROUP BY中包含所有 在 SELECT 中出现的字段。因此需要在 MySQL 的配置中去掉这个配置)
7.保存后,进入mysql的bin目录下,执行下面命令
./mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lower-case-table-names=1 --initialize
其中 --lower-case-table-names=1 这个参数依然根据是否需要数据库表名大小写敏感设置成 0 或者 1,默认是0,
区分大小写的话这个就删除掉不用加就行
成功后显示如下
这个随机密码不用记,记住也没有用
8.复制 mysql.server 文件,添加mysql 和 mysqld服务
注意,此时在mysql目录下
cp -a ./support-files/mysql.server /etc/init.d/mysql
cp -a ./support-files/mysql.server /etc/init.d/mysqld
复制完后赋予权限:
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
9.启动mysql
service mysql start
见到如下表示启动成功
10.添加软连接命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
11.登录mysql
mysql -uroot -p
此时输入密码你会发现怎么都不对,即使你确定你输对了之前生成的随机密码
这就是说的前面生成的那个初始密码根本没用的原因,解决如下:
编辑my.cnf文件
vi /etc/my.cnf
在文件中随便一行加入 skip-grant-tables,这行在之前的贴图中用#号注释着的,用途就是为了这里,
保存后重启mysql:service mysql restart
再次 mysql -uroot -p 登录mysql ,直接敲两次回车,密码已经被跳过了,看到如下
此时已经登录进来了
输入命令 use mysql
使用命令清空之前的密码设置
update user set authentication_string = ‘’ where user = ‘root’;
此时密码已被清空,quit退出mysql
将之前my.cnf文件中添加的跳过密码配置删掉,保存后service mysql restart重启mysql,然后mysql -uroot -p敲两次回车登录mysql,
因为密码已经被清空了,所以这里依然不用输入密码
进去后重新修改密码
输入use mysql命令
输入修改密码命令 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘12345678’;
输入刷新权限命令 flush privileges;
接着输入命令配置可以远程连接到此数据库:update user set host=‘%’ where user=‘root’;
并刷新权限
接着可以用Navicat尝试连接一下了
以上是关于Linux实战——MySQL5.7和MySQL8.0分别在CentOS和Ubuntu中的安装配置过程的主要内容,如果未能解决你的问题,请参考以下文章
数据库学习笔记第一弹——MySQL8.0和MySQL5.7的下载安装与配置(图文详解步骤2022)