5.1、MySQL数据库管理系统安装部署
5.1.1、简介
1、MySQL简介
MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。
MySQL数据库可谓是软件行业的明星产品,无论是后端开发、大数据、AI、运维、测试等各类岗位,基本上都会和MySQL打交道。
让我们从MySQL开始,进行实战的Linux软件安装部署。
本次课程分为2个版本进行安装:
- MySQL 5.7版本安装
- MySQL 8.x版本安装
由于MySQL 5.x和MySQL 8.x各自有许多使用者,所以这两个版本我们都演示安装一遍。
2、注意
MySQL的安装过程中,除了会使用Linux命令外,还会使用到少量的数据库专用的:SQL语句。
对于SQL语句我们并未涉及,所以可以跟随课程的内容,复制粘贴即可。
5.1.2、MySQL5.7版本在CentOS系统安装
注意:安装操作需要root权限
MySQL的安装我们可以通过前面学习的yum命令进行。
5.1.2.1、安装
1、配置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
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
1.由于MySQL并不在CentOS的官方仓库中,所以我们通过上述rpm命令:
- 导入MySQL仓库的密钥
- 配置MySQL的yum仓库
2.其余操作
- 查询列出所有与mysql相关的rpm包:
rpm -qa | grep mysql
- 要删除mysql57社区发布问题
rpm -e --nodeps mysql57-community-release
2、使用yum安装MySQL
# yum安装MySQL
yum -y install mysql-communtity-server
3、安装完毕后,启动MySQL并配置开机自启动
# 启动
systemctl start mysqld
# 自启动
systemctl enable mysqld
MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理。
4、检查MySQL的运行状态
systemctl status mysqld
5.1.2.2、配置
主要配置管理员用户root的密码以及配置允许远程登录的权限。
1、获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log
2、登录MySQL数据库系统
# 执行
mysql -uroot -p
# 解释
# -u,登录的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登录
# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
3、修改root用户密码
# 在MySQL控制台内执行
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
# 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句,如123、abc
4、【扩展】,配置root的简单密码
我们可以给root设置简单的密码,如123456。
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码。
# 如果你想设置简单密码,需要降低MySQL的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4; # 密码长度最低4位即可
# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
5、【扩展】,配置root运行远程登录
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登录MySQL系统。
请注意,允许root远程登录会带来安全风险。
# 授权root远程登录
grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option;
# IP地址即运行登录的IP地址,也可以填写%,表示允许任何地址
# 密码表示给远程登录独立设置密码,和本地登录的密码可以不同
# 刷新权限,生效
flush privileges;
6、退出MySQL控制页面
# 退出命令
exit
# 或者通过快捷键退出:Ctrl+d
7、检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态。
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
5.1.3、MySQL8.0版本在CentOS系统安装
注意:安装操作需要root权限
5.1.3.1、安装
1、配置yum仓库
# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装MySQL8.x版本 yum库
rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
2、使用yum安装MySQL
# yum安装MySQL
yum -y install mysql-communtity-server
3、安装完毕后,启动MySQL并配置开机自启动
# 启动
systemctl start mysqld
# 自启动
systemctl enable mysqld
MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理。
4、检查MySQL的运行状态
systemctl status mysqld
5.1.3.2、配置
主要配置管理员用户root的密码以及配置允许远程登录的权限。
1、获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log
2、登录MySQL数据库系统
# 执行
mysql -uroot -p
# 解释
# -u,登录的用户,MySQL数据库的管理员用户同Linux一样,是root
# -p,表示使用密码登录
# 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
3、修改root用户密码
# 在MySQL控制台内执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
# 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句,如123、abc
4、【扩展】,配置root的简单密码
我们可以给root设置简单的密码,如123456。
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码。
# 如果你想设置简单密码,需要降低MySQL的密码安全级别
set global validate_password.policy=0; # 密码安全级别低
set global validate_password.length=4; # 密码长度最低4位即可
# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '简单密码';
5、【扩展】,配置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 '密码';
这里的%,表示允许任何地址;也可以将%修改成IP地址。
6、退出MySQL控制页面
# 退出命令
exit
# 或者通过快捷键退出:Ctrl+d
7、检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态。
netstat -anp | grep 3306
至此,MySQL就安装完成并可用了,请妥善保存好MySQL的root密码。
5.1.4、MySQL5.7版本在Ubuntu(WSL环境)系统安装
课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本。
所以我们需要额外的步骤才可以安装5.7版本的MySQL。
安装操作需要root权限,你可以:
- 通过
sudo su -
,切换到root用户 - 或者在每一个命令前,加上
sudo
,用来临时提升权限。
1、下载apt仓库文件
# 下载apt仓库的安装包,Ubuntu的安装包是.deb文件
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
2、配置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
3、更新apt仓库的信息
# 首先导入仓库的密钥信息
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# 更新仓库信息
apt update
4、检查是否成功配置MySQL5.7的仓库
apt-cache policy mysql-server
5、安装MySQL5.7
#使用apt安装mysql客户端和mysql服务端
apt install -f -y mysql-client=5.7* mysql-community-server=5.7*
弹出框中输入root密码并选择ok,密码任意,课程中以123456代替。
再次输入密码确认。
6、启动MySQL
/etc/init.d/mysql start # 启动
/etc/init.d/mysql stop # 停止
/etc/init.d/mysql status # 查看状态
7、对MySQL进行初始化
# 执行如下命令,此命令是MySQL安装后自带的配置程序
mysql_secure_installation
# 可以通过which命令查看到这个自带程序所在的位置
which mysql_secure_installation
- 输入密码
- 是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(课程中选择直接回车)
- 是否更改root密码,需要输入y回车,不需要直接回车(课程不更改)
- 是否移除匿名用户,移除输入y回车,不移除直接回车(课程选择移除)
- 是否禁止root用户远程登录,禁止输入y回车,不禁止直接回车(课程选择不禁止)
- 是否移除自带的测试数据库,移除输入y回车,不移除直接回车(课程选择不移除)
- 是否刷新权限,刷新输入y回车,不刷新直接回车(课程选择刷新)
8、登录MySQL
mysql -uroot -p
# 输入密码即可登录成功
至此,在Ubuntu上安装MySQL5.7版本成功。
5.1.5、MySQL8.0版本在Ubuntu(WSL环境)系统安装
课程中配置的WSL环境是最新的Ubuntu22.04版本,这个版本的软件商店内置的MySQL是8.0版本。
所以直接可以通过apt安装即可。
注意,课程是以WSL获得的Ubuntu操作系统环境。
如果你通过VMware虚拟机的方式获得了Ubuntu操作系统环境,操作步骤不用担心,和课程中是以WSL环境是完全一致的。
安装操作需要root权限,你可以:
- 通过
sudo su -
,切换到root用户 - 或者在每一个命令前,加上
sudo
,用来临时提升权限。
1、如果已经安装过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
2、更新apt仓库的信息
# 更新仓库信息
apt update
3、安装mysql
apt install -y mysql-server
4、启动MySQL
/etc/init.d/mysql start # 启动
/etc/init.d/mysql stop # 停止
/etc/init.d/mysql status # 查看状态
5、登录MySQL设置密码
# 直接执行:mysql
mysql
6、设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
7、退出MySQL控制台
exit
8、对MySQL进行初始化
# 执行如下命令,此命令是MySQL安装后自带的配置程序
mysql_secure_installation
# 可以通过which命令查看到这个自带程序所在的位置
which mysql_secure_installation
- 输入密码
- 是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要直接回车(课程中选择直接回车)
- 是否更改root密码,需要输入y回车,不需要直接回车(课程不更改)
- 是否移除匿名用户,移除输入y回车,不移除直接回车(课程选择移除)
- 是否禁止root用户远程登录,禁止输入y回车,不禁止直接回车(课程选择不禁止)
- 是否移除自带的测试数据库,移除输入y回车,不移除直接回车(课程选择不移除)
- 是否刷新权限,刷新输入y回车,不刷新直接回车(课程选择刷新)
9、重新登录MySQL
mysql -uroot -p
# 输入密码即可登录成功
至此,在Ubuntu上安装MySQL8.0版本成功。