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';     按照时间清理日志

 

posted @ 2024-06-20 15:56  聆听城市喧哗  阅读(9)  评论(0编辑  收藏  举报