Centos7.2安装mysql8
1、安装前工作
在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载 (在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库)。
#查看mariadb数据库:rpm -qa | grep mariadb
#卸载mariadb数据库:rpm -e --nodeps mariadb文件名
#查看 mysql 数据库:rpm -qa | grep -i mysql
#卸载 mysql 数据库:rpm -e mysql文件名 # 如果有关联文件,不能直接卸载。可以用一下命令强制卸载:rpm -e --nodeps mysql文件名)
#删除etc目录下的my.cnf文件:rm /etc/my.cnf
2、官网下载
下载成功之后,上传到云服务
3、解压到/usr/local下面
解压命令:tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
4、添加mysql用户组和用户
#首先检查mysql用户和组是否存在
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
#添加mysql用户和组
groupadd mysql
useradd -r -g mysql mysql
5、初始化mysql配置表
# chown -R mysql:mysql ./ 修改当前目录为mysql用户
#./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64 --datadir=/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64/data
初始化数据库
# 如果出现如图所示错误,则说明这是缺少numactl,这个时候如果是Centos就yum -y install numactl就可以解决,然后重新运行上面的initialize命令
# 再次执行,注意下图中initialize成功,会出现一个随机密码
#修改当前用户为root用户 chown -R root:root ./
#修改当前的data目录为mysql用户 chown -R mysql:mysql data/
cd support-files/
touch my-default.cnf
cp ./my-default.cnf /etc/my.cnf
mkdir tmp
chmod 777 ./tmp/
修改/etc/my.cnf配置文件
[mysqld]
basedir=/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64
datadir=/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64/data
port=3306
socket=/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64/tmp/mysql.socket
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
6、加入开机启动项
#copy
#增加执行权限
#注册启动服务
#查看是否添加成功
cp mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cd ..
chkconfig --add mysqld
#启动服务
cd support-files/
./mysql.server start --user=mysql
7、配置环境变量
# vi /etc/profile
export PATH=$PATH:/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64/bin:/usr/local/mysql-8.0.13-linux-glibc2.12-x86_64/lib
# 保存退出之后 执行source /etc/profile让文件生效
8、登录并修改初始密码
# 建立软链接 ln -s /usr/local/mysql-8.0.13-linux-glibc2.12-x86_64/tmp/mysql.socket /tmp/mysql.sock
# 登录mysql,密码是刚刚生成的
,修改密码 alter user 'root'@'localhost' identified by '123456';
9, 授权用户:任意主机以用户root和密码mypwd连接到mysql服务器
# 查询user和host,并将host改成‘%’ select user,host from user;
# update user set host = '%' where user = 'root';
# flush privileges;
# 经过以上步骤如果还连不上,可以试试以下方式,重置以下密码
# ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';