1、简介
MySQL是一个流行的开源关系型数据库管理系统(RDBMS),它基于SQL(Structured Query Language,结构化查询语言)进行操作。MySQL最初由瑞典的MySQL AB公司开发,后来被Sun Microsystems公司收购,最终成为甲骨文公司(Oracle Corporation)的一部分。
2、资源下载
2.1、查看 CentOS 版本
# 显示Linux标准基础(Linux Standard Base,LSB)的版本信息
lsb_release -a
2.2、下载 MySQL
MySQL 社区版下载链接
2.3、Oracle 帐户,方便下载
# 提醒:为了大伙的方便,请不要随便用该邮箱重新注册Oracle账号!
账号:yawoniu@163.com
密码:Oracle.123
2.4、卸载 MariaDB(按需操作)
# 停止 MariaDB 服务
systemctl stop mariadb
# 卸载 MariaDB 服务
yum remove mariadb-server
# 清理依赖包
yum list installed | grep mariadb
yum remove mariadb-libs
# 删除配置文件和数据目录
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql
# 清理残留文件
find / -name '*mysql*'
# 验证卸载
yum list installed | grep mariadb
3、安装 MySQL
3.1、创建目录
# 创建 MySQL 工作目录
mkdir -p /usr/local/app/mysql
3.2、解压文件
# 上传 MySQL 安装包到指定文件并解压
tar xvf mysql-8.0.38-1.el7.x86_64.rpm-bundle.tar
3.3、安装 MySQL
# 安装 MySQL 软件包
# -i:安装软件包。
# -v:在安装过程中显示详细的输出信息。
# -h:显示安装进度条。
# *.rpm:通配符 * 表示匹配当前目录下所有以 .rpm 结尾的文件,表示要安装所有以 .rpm 结尾的软件包。
# --nodeps:在安装软件包时不检查依赖关系。这意味着即使软件包的依赖关系未满足,也会强制安装。
# --force:强制安装软件包,即使已经安装了相同版本的软件包。
# rpm -ivh *.rpm
# --nodeps --force 最好不强制安装,查看一下以来,先删除已有mysql版本(包括mariadb)
# 按顺序依次执行
rpm -ivh mysql-community-common-*.rpm
rpm -ivh mysql-community-client-plugins-*.rpm
rpm -ivh mysql-community-libs-*.rpm
rpm -ivh mysql-community-client-8*.rpm
rpm -ivh mysql-community-icu-data-files-*.rpm
rpm -ivh mysql-community-server-*.rpm
# 缺少 openssl-devel,使用如下命令安装一下就可以了
yum install openssl-devel -y
# 查看 MySQL 安装情况
systemctl status mysqld
3.4、配置 MySQL
# 编辑配置文件
vi /etc/my.cnf
复制以下内容
# 服务器唯一ID,默认是1
server-id=1
# 启用二进制日志
log-bin=mysql-bin
# 最大连接数
max_connections=10000
# 设置默认时区
default-time_zone='+8:00'
# 0:区分大小写
# 1:不区分大小写
lower_case_table_names=1
3.5 开机自启动
# 启动 MySQL 服务
systemctl start mysqld
# 停止 MySQL 服务
systemctl stop mysqld
# 重启 MySQL 服务
systemctl restart mysqld
# 设置开机自启动
systemctl enable mysqld
# 验证自启动设置,如果服务已设置为自启动,该命令将输出 enabled
systemctl is-enabled mysqld
# 查看服务状态
systemctl status mysqld
# 禁用自启动(如果需要)
systemctl disable mysqld
3.6、更改加密规则
第一步,初始化登录密码,需要满足强密码要求的密码
# 拿到初始密码(若在my.cnf修改了路径,按my.cnf路径来)
grep password /var/log/mysqld.log
# mysql 登录
mysql -u root -p
# 登录后必须先改密码,否则其他操作无法进行,需要满足强密码要求的密码(密码改成自己的)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'P@ssw0rd!@##';
# mysql 8.0.13以后的版本授权指令要分开执行
# 1、查看目前用户的 host
select user,host from mysql.user;
# 2、修改用户 host
update mysql.user set host='%' where user='root';
# 3、给予远程用户所有表所有权限
GRANT ALL ON *.* TO 'root'@'%' with grant option;
# 远程访问(密码改成自己的)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd!@##';
# 刷新权限
flush privileges;