记录一下安装过程用于后面项目参考
目录
- 说明
- 安装步骤
- yum安装默认目录
- 修改默认的数据目录
- 必要的my.cnf属性修改
- 卸载Mysql
说明
一般情况下都是docker安装,部分特殊情况下,例如老外的项目部分禁用docker,那一般二进制安装或者yum直接安装。
- 安装操作系统 redhat 7.x
- mysql版本 8.0.22
- 安装方式为yum安装
安装步骤
确保您具有管理员权限或以root用户身份登录到系统
1.运行以下命令以安装MySQL服务器:
sudo yum install mysql-server
2.安装完成后,启动MySQL服务:
sudo systemctl start mysqld
3.运行以下命令以保护MySQL安装并设置root密码:
sudo mysql_secure_installation
4.完成安全设置后,可以通过以下命令检查MySQL服务的状态:
sudo systemctl status mysqld
yum安装默认目录
针对mysql8 redhat 默认安装目录总结如下:
目录 | 用途 | 说明 |
/usr/bin | MySQL二进制文件目录 | 这个目录包含了MySQL服务器和客户端程序的可执行文件,例如mysql、mysqld等 |
/etc/my.cnf | MySQL配置文件目录 | 这个目录包含了MySQL服务器的配置文件my.cnf,您可以在此文件中进行MySQL的配置 |
/var/lib/mysql | 数据目录 | 这个目录是MySQL服务器存储数据文件的位置。其中包含了数据库文件、日志文件和其他数据文件 |
/var/log/mysqld.log | 错误日志目录 | 这个目录包含了MySQL服务器的错误日志文件,您可以在此文件中查看MySQL的错误和警告信息 |
/tmp | 临时文件目录 | MySQL服务器使用此目录存储临时文件,例如排序和临时表等 |
/var/run/mysqld | Socket文件目录 | MySQL服务器使用此目录存储UNIX域套接字文件,用于与其他进程进行通信 |
修改默认的数据目录
假设 我们希望将数据目录调整为 /home/guzt/data/
- 关闭mysql服务
sudo systemctl stop mysqld
- 创建自定义目录
sudo mkdir /home/guzt/data/mysql
- 拷贝数据文件
cp -R /var/lib/mysql /home/guzt/data/
- 修改自定义目录归属
sudo chown -R mysql:mysql /home/guzt/data/
- 修改配置文件
vim /etc/my.cnf.d/mysql-server.cnf
# ##################修改这一行########################
datadir=/home/guzt/data/mysql
# ####################################################
- 重启mysql服务
sudo systemctl start mysqld
sudo systemctl status mysqld
必要的my.cnf属性修改
vim /etc/my.cnf.d/mysql-server.cnf
# #####################################################
#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"
#设置client连接mysql时的字符集,防止乱码
init_connect ='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#事务隔离级别,默认为可重复读,mysql默认可重复读级别(此级别下可能参数很多间隙锁,影响性能)
transaction_isolation = READ-COMMITTED
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M
server-id = 110
#开启bin log 功能
log-bin=mysql-bin
#binlog 记录内容的方式,记录被操作的每一行
binlog_format = ROW
#对于binlog_format = ROW模式时,FULL模式可以用于误操作后的flashBack。
#如果设置为MINIMAL,则会减少记录日志的内容,只记录受影响的列,但对于部分update无法flashBack
binlog_row_image = FULL
#bin log日志保存的天数
#如果 binlog_expire_logs_seconds 选项也存在则 expire_logs_days 选项无效
#expire_logs_days 已经被标注为过期参数
#expire_logs_days = 7
binlog_expire_logs_seconds = 1209600
log_replica_updates
relay_log_recovery = 1
replica_skip_errors = ddl_exist_errors
#控制 redolog 写磁盘频率 默认为1
innodb_flush_log_at_trx_commit = 1
#控制 binlog 写磁盘频率
sync_binlog = 1
[mysqldump]
quick
max_allowed_packet = 128M
# #####################################################
卸载Mysql
如果要协助请执行如下步骤:
sudo systemctl stop mysqld
sudo yum remove mysql-server
sudo yum remove mysql mysql-server mysql-libs
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/my.cnf
sudo userdel mysql
sudo groupdel mysql
运行以下命令以清理任何残留的MySQL文件和目录
sudo find / -name mysql
sudo find / -name my.cnf