Centos7安装mysql8.21
Centos7安装mysql8.21
一、缷载maridb,一般centos都会预装maridb,这个可能会与mysql冲突,先卸载它
# 查看是否自带mariadb数据库 rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 rpm -qa|grep mariadb # 检查卸载结果,如果输出为空,表示卸载完毕
二、安装依懒我
# 查找libaio [root@pcbsrv57077 ~]# rpm -qa|grep libaio # 安装libaio [root@pcbsrv57077~]# yum -y install libaio # 检查numactl
[root@pcbsrv57077~]# rpm -qa|grep numactl # 安装numactl
[root@pcbsrv57077~]# yum -y install numactl
三、下载mysql安装包,上传到Centos7系统
链接:https://pan.baidu.com/s/1he4uKFGxByI3Qr7FfuRIVA?pwd=yanz
提取码:yanz
四、、解压文件
tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz -C /usr/local/
cd /usr/local/
mv mysql-8.0.21-el7-x86_64/ mysql
五、用户权限
# 创建用户组 [root@node2 local]# groupadd mysql # 创建用户 [root@node2 local]# useradd -g mysql mysql # 更改mysql目录的所属 [root@node2 local]# chown -R mysql:mysql /usr/local/mysql
六、创建配置文件
vi /etc/my.cnf
# 客户端配置 [client] port = 3306 socket = /usr/local/mysql/mysql.sock default-character-set = utf8mb4 # 服务端配置 [mysqld] user = mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data # log-error = /usr/local/mysql/error.log # pid-file = /usr/local/mysql/mysqld.pid port = 3306 socket = /usr/local/mysql/mysql.sock character-set-server = utf8mb4 collation-server = utf8mb4_general_ci init_connect = 'SET NAMES utf8mb4' # 表名是否区分大小,默认是0,表区分大小写;1代表不区分大小写,以小写存储 lower_case_table_names = 1
七、把配置文件授权给mysql用户
chown mysql:mysql /etc/my.cnf
七、mysql初始化并启动
[root@pcbsrv57077 local]# /usr/local/mysql/bin/mysqld --initialize
从打印出的日志可以看到,mysql自动生成了一个初始密码 ;?o*wnfal4Eq ,就在日志最后面.把这个密码记下来,一会登录要用.
八、启动数据库
/usr/local/mysql/support-files/mysql.server start
九、启动客户端,连接数据库、修改密码
/usr/local/mysql/bin/mysql -p 输入密码刚刚那个临时密码 修改密码 set password for root@localhost = 'Admin##2024!'; 允许远程登录 use mysql; 允许root远程登录 update user set user.Host='%' where user.User='root'; 刷新 flush privileges; exit
十、优化设置软链接和开机自动启动
ln -s /usr/local/mysql/bin/mysql /usr/bin
以后就可以直接这进入数据库
mysql -uroot -p
以后可以直接用mysql启动客户端了
优化启动命令
软连接到系统启动目录下 ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld # 开启服务 [root@node1 ~]# systemctl start mysql # 关闭服务 [root@node1 ~]# systemctl stop mysql # 重启服务 [root@node1 ~]# systemctl restart mysql # 查看服务状态 [root@node1 ~]# systemctl status mysql #查看进程 ps -e | grep mysql
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
问题处理:
1、mysql手动清除掉了/var/lib/mysql
路径下的 binlog.0*
文件导致mysql无法启动
1》启动mysqld失败
2》查看mysqld状态
3》运行journalctl -xe
4》查看mysql日志,提示redo事务日志文件干掉了
解决方法:
cd /var/lib/mysql #进入此目录 mv binlog.index binlog.index.bak 备份这个文件 systemc start mysqld 启动mysql
优化日志:
mysql -uroot -p
show variables like 'binlog_expire_logs_seconds';
set global binlog_expire_logs_seconds=86400; 设置日志保留24小时
flush logs;
show binary logs; 查询所有的日志
purge binary logs to 'bin.000055'; 指定日志名称清理
purge binary logs before '2024-2-21 00:00:00'; 按照时间清理日志
本文来自博客园,作者:聆听城市喧哗,转载请注明原文链接:https://www.cnblogs.com/fzhelpdesk/p/18258848