1.检查是否已经安装
命令:
rmp -qa|grep mysql
如果没有安装,应当如下图所示
如果有安装
使用yum命令,yum命令可以自动删除与mysql相关的依赖
yum -y remove mysql-libs-5.1.73-8.el6_8.x86_64
删除后再查看是否成功。如果没有提示则删除成功。
2.下载mysql 5.7
mysql官网下载地址
将下载好的压缩包上传到服务器,工具自选,我这里用的是filezilla。
解压文件,命令:
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
解压完成后删除压缩包
rm -f mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
3.创建mysql用户及用户组
groupadd mysql
//useradd -r参数表示mysql用户是系统用户,不可用于登录系统;第一个mysql是用户组,第二个mysql是用户
useradd -r -g mysql mysql
查看用户组是否创建成功
groups mysql
将mysql目录访问权限赋为myql用户
chown -R mysql /home/mysql//home/mysql/mysql-5.7.29-linux-glibc2.12-x86_64
改变mysql目录的用户组属于mysql组
chgrp -R mysql /home/mysql//home/mysql/mysql-5.7.29-linux-glibc2.12-x86_64
查看权限被修改
4.配置mysql
//创建mysql.sock 并设置权限(mysql目录下)
mkdir temp
cd temp
//创建mysql.sock文件
touch mysql.sock
//设置权限
chown -R mysql:mysql /home/mysql/temp/mysql.sock
chmod 755 /home/mysql/temp/mysqlsock
创建/tmp/mysqld.pid。并设置权限
5.初始化mysql
bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql-5.7.29-linux-glibc2.12-x86_64/ --datadir=/home/mysql/data/
这里遇到一个问题,问题如下
于是,根据提示安装libaio
yum -y install yum install libaio-devel.x86_64
安装完成后重新执行初始化命令,发现又出现如下错误
这里是因为data目录下已经生成了一些文件,需要把这些文件删除
删除之后再重新执行就可以了。
6.启动与报错问题解决
1.首先,我是遇到了如下这个错误。
Redirecting to /bin/systemctl start mysql.service Failed to start mysql.service: Unit not found.
将安装目录下的mysql.server文件复制到/etc/init.d/mysql
将安装目录下的mysql.server文件复制到/etc/init.d/mysql
yum install -y mariadb-server
systemctl start mariadb.service
根据提示对对应的文件赋权限就可以了,可能会有多个。一直执行下去就行。
chown -R mysql:mysql /var/log/mariadb
chmod 755 /var/log/mariadb
2.然后,是遇到这个2002的错误
解决问题命令:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
3.继续登录,出现以下问题
解决方案,在/etc/my.cnf文件中加入一行:skip-grant-tables
然后就可以免密登录,登录之后再修改root用户密码,最后一定记得删除my.cnf文件中的skip-grant-tables这句代码。
需注意的是5.7版本中没有password字段了,改为了authentication_string
update user set authentication_string=password('***') where user='root';
4.修改后第一次登录会让你重新设置密码
alter user 'root'@'localhost' identified by 'your password'
5.使用Navicat连接时出现以下错误
登录服务器,执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123..' WITH GRANT OPTION;
然后就可以连接了