- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
# 查询CentOS系统中是否存在mariadb数据库
[root@localhost ~]# rpm -qa | grep mariadb
# 如果存在,卸载mariadb数据库
[root@localhost ~]# rpm -e --nodeps mariadb-libs-*
语法:shell语法中,#代表注释,*匹配任意长度字符
语法:rpm {-q|-V|-i|-U|-F|-e} [-option] packagename
,RPM软件包管理器,-q表示查询,-a表示所有软件包,-e表示擦除,--nodeps表示不进行依赖项关系检查
使用远程工具FinalShell,将mysql-8.0.28-el7-x86_64.tar.gz压缩包上传至/opt目录
注意:开源软件可访问国内的阿里云镜像网站,例如MySQL压缩包的地址:https://www.landui.com/mysql/MySQL-8.0
将MySQL压缩包解压到/usr/local目录
[root@localhost ~]# tar -zxvf /opt/mysql-8.0.28-el7-x86_64.tar.gz -C /usr/local
将MySQL安装根目录重命名为mysql
[root@localhost ~]# mv /usr/local/mysql-8.0.28-el7-x86_64/ /usr/local/mysql/
/usr/local/mysql目录下创建data目录
[root@localhost ~]# mkdir /usr/local/mysql/data
a.编辑/etc/profile文件
#编辑/etc/profile文件
[root@localhost ~]# vim /etc/profile
#文件最后一行添加
export PATH=/usr/local/mysql/bin:$PATH
#按esc键后保存并退出
:wq
b.重载/etc/profile文件
[root@localhost ~]# source /etc/profile
c.查看PATH值,确认环境变量是否成功刷新
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
a.查询MySQL帮助,获取帮助手册里的配置文件读取顺序优先级信息
[root@localhost ~]# mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
b.新建或编辑读取顺序优先的配置文件
[root@localhost ~]# vim /etc/my.cnf
c.配置文件里输入详细的自定义配置信息,并保存
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置mysql服务端字符集,默认为latin1
character-set-server=UTF8MB4
# 设置mysql服务端端口
port=3306
socket=/tmp/mysql.sock
# 设置mysql服务端根目录
basedir=/usr/local/mysql
# 设置mysql服务端数据存放目录
datadir=/usr/local/mysql/data
# 设置mysql服务端最大连接数
max_connections=200
# 设置mysql服务端默认存储引擎
default-storage-engine=INNODB
# 设置mysql服务端密码永不过期
default_password_lifetime=0
# 设置mysql服务端接受的数据包大小
max_allowed_packet=16M
a.新增mysql用户组
[root@localhost ~]# groupadd mysql
语法:groupadd [-option] groupaccount
,创建一个新的用户组账号
b.新增mysql用户,并添加到mysql用户组
[root@localhost ~]# useradd -r -g mysql mysql
语法:useradd [-option] useraccount
,创建一个新的用户账号,-r表示新建一个系统账号,-g表示用户初始所属用户组
c.更改mysql目录所归属的用户和用户组
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
语法:chown [-option] [owner][[:group]] file
,改变文件所属的用户和用户组,-R表示文件和目录所属递归生效
用户和用户组更改生效后的目录
# 初始化MySQL数据库
[root@localhost ~]# mysqld --initialize --user=mysql
# 初始化过程,临时密码在最后一行
2024-01-21T12:01:32.648018Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 29268
2024-01-21T12:01:32.675005Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-01-21T12:01:33.739030Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-01-21T12:01:36.888800Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rL1=sh(GA_yo
注意:rL1=sh(GA_yo
为初始化产生的临时密码,随机产生
a.安装SSL证书和RSA密钥对文件
[root@localhost ~]# mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
语法:mysql_ssl_rsa_setup [-option]
,安装SSL证书和RSA密钥对文件,--datadir表示检查SSL和RSA文件目录,如果文件丢失,将重新创建文件
b.为所有用户添加证书的读取权限
[root@localhost ~]# chmod -R a+r /usr/local/mysql/data/server-key.pem
语法:chmod [-option] mode[,mode] file
,改变文件的权限,-R表示文件和目录所属递归生效,a表示所有用户,+表示添加权限,r表示读取权限
a.复制mysql服务端脚本到系统启动时执行脚本的目录下
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
b.为启动脚本添加执行权限
[root@localhost ~]# chmod +x /etc/rc.d/init.d/mysqld
c.将mysqld服务添加至系统服务
[root@localhost ~]# chkconfig --add mysqld
语法:chkconfig [-option] servicename
,更新或查询系统服务的运行级别
d.查询mysqld服务,确认服务运行级别状态
[root@localhost ~]# chkconfig --list mysqld
# mysqld服务的运行级别状态,0表示系统停机模式;1表示单用户模式;2表示多用户模式,没有网络支持;3表示完整的多用户模式,有网络支持;4表示未使用;5表示开启图形化模式;6表示系统重启模式
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
e.启动mysqld服务
[root@localhost init.d]# service mysqld start
Starting MySQL SUCCESS!
a.防火墙添加开放端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
语法:firewall-cmd [-option]
,防火墙命令行客户端工具,--zone表示作用区域,--add-port表示添加端口和协议,--permanent表示永久生效,--reload表示重新加载
b.修改配置文件后,重新加载防火墙
[root@localhost ~]# firewall-cmd --reload
success
# a.初次访问MySQL数据库,用临时密码登录
[root@localhost ~]# mysql -uroot -p
Enter password:
# 下面这个提示说明已成功登录数据库
mysql>
# b.修改用户密码
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.02 sec)
# c.切换数据库
mysql> use mysql;
Database changed
# d.开启远程连接,默认状态不开启
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
# 如果使用第三方客户端远程连接MySQL数据库,修改密码时要指定编码集
mysql> alter user 'root'@'%' identified with mysql_native_password by 'root';
Query OK, 0 rows affected (0.02 sec)
# e.刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
# f.退出数据库
mysql> quit
Bye
MySQL初始化的临时密码无效,或忘记了登录密码,可以重置密码
# a.停止mysqld服务
[root@localhost ~]# service mysqld stop
Shutting down MySQL. SUCCESS!
# b.编辑MySQL配置文件
[root@localhost ~]# vim /etc/my.cnf
# c.配置文件里[mysqld]后任意一行添加skip-grant-tables
[mysqld]
# 跳过密码验证请去除下一行前面的注释#,适用场景:重置密码场景
skip-grant-tables
# d.配置文件保存并退出
:wq
# e.启动mysqld服务
[root@localhost ~]# service mysqld start
Starting MySQL.. SUCCESS!
# f.无密码验证方式登录MySQL数据库
[root@localhost ~]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \\g.
# 下面这个提示说明已成功登录数据库
mysql>
# g.刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
# h.修改用户密码
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.02 sec)
# i.刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
# j.退出数据库
mysql> quit
Bye
# k.停止mysqld服务
[root@localhost ~]# service mysqld stop
Shutting down MySQL. SUCCESS!
# l.编辑MySQL配置文件
[root@localhost ~]# vim /etc/my.cnf
# m.配置文件里[mysqld]后的skip-grant-tables删除或注释处理
[mysqld]
# 跳过密码验证请去除下一行前面的#,重置密码时使用
# skip-grant-tables
# n.配置文件保存并退出
:wq
售前咨询
售后咨询
备案咨询
二维码
TOP