删除mariadb,防止与二进制mysql冲突:
[root@mysql ~]#yum remove -y mariadb
上传解压mysql软件包:
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
或wget 下载:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
在这里使用的是 mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
解压软件包到/usr/local/
[root@mysql ~]#tar zxf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
创建用户和组
[root@mysql ~]#groupadd -r mysql && useradd -M -r -s /sbin/nologin -g mysql mysql
改文件名称
[root@mysql ~]#mv /usr/local/mysql-5.7.38-linux-glibc2.12-x86_64 /usr/local/mysql
修改mysql目录权限
[root@mysql ~]#chown -R mysql:mysql /usr/local/mysql/
添加环境变量
[root@mysql ~]#ln -s /usr/local/mysql/bin/* /usr/local/bin
建立数据存放目录
[root@mysql ~]#mkdir -p /data/mysql/{data,log}
修改权限
[root@mysql ~]#chown -R mysql:mysql /data/mysql
更改配置文件
[root@mysql ~]#vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/data
port=3306
socket=/tmp/mysql.sock
symbolic-links=0
character-set-server=utf8
log-error=/data/mysql/log/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
skip-grant-tables #无密码登录数据库
配置服务启动脚本
[root@mysql ~]#cd /usr/local/mysql/support-files/ &&file mysql.server && cp -a mysql.server /etc/init.d/mysqld
把mysql添加到系统服务
[root@mysql ~]#chkconfig --add mysqld
把mysql添加到开机自启动
[root@mysql ~]#chkconfig mysqld on
查看mysql开机自启动状态
[root@mysql ~]#chkconfig --list mysqld
初始化数据库
[root@mysql ~] #/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
--basedir=/usr/local/mysql --datadir=/data/mysql/data
若初始化出错/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
则:yum -y install numactl
开启数据库
[root@mysql ~]#/etc/init.d/mysqld start
登陆到mysql修改root登录密码
[root@mysql ~]# mysql
进入mysql库中:
mysql>use mysql;
刷新权限:
mysql>flush privileges;
更改密码:
mysql> set password for 'root'@'localhost'=password('123456');
刷新:
mysql>flush privileges;
将无密码登录数据库的那一行注释掉
skip-grant-tables
重启数据库
#/etc/init.d/mysqld restart