Linux系统中安装MySQL
环境:
1、操作系统:CentOS 7.7
2、安装版本:mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz(下载地址:http://dev.mysql.com/downloads/mysql/)
特殊说明:MySQL5.6版本和5.7版本安装方法略有不同,以下方法以5.6版本为主
3、参考文档:
https://www.jianshu.com/p/f4a98a905011
https://blog.csdn.net/xiaoyi23000/article/details/56491466
https://www.cnblogs.com/niechen/p/6875695.html
1、卸载已存在的mysql文件和文件夹
find / -name mysql
rm -rf 上边查找到的路径,多个路径用空格隔开
#或者下边一条命令即可
find / -name mysql|xargs rm -rf
image.png
2、解压mysql压缩文件(文件放在/usr/local路径下)
tar -zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
image.png
3、删除安装包,重命名文件
rm -f mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.31-linux-glibc2.5-x86_64/ mysql
image.png
4、添加mysql用户组和mysql用户
先检查是否有mysql用户和mysql用户组,若没有,则添加,若有,则跳过此步骤。
groups mysql
#添加mysql用户和mysql用户组
groupadd mysql
useradd -r -g mysql mysql
image.png
5、进入到mysql目录更改权限
cd mysql/
chown -R mysql:mysql ./
image.png
6、执行安装脚本
./scripts/mysql_install_db --user=mysql
image.png
安装完成后,修改当前目录(/usr/local/mysql)拥有者为root用户,修改data目录拥有者为mysql。
chown -R root:root ./
chown -R mysql:mysql data
image.png
7、启动mysql
./support-files/mysql.server start
image.png
在执行此命令时出现报错ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
image.png
解决方法:
(1)首先查看是否有mysql进程在运行,若有,杀掉进程再重新运行(步骤执行后成功启动mysql,下一条步骤不用执行)
ps aux|grep mysql(执行此命令查看到进程再用kill -9命令杀死进程)
#或者下边一条命令即可杀掉所有MySQL进程
ps aux|grep mysql|awk '{print $2}'|xargs kill -9
image.png
(2)操作后还是报错,查看是否有mariadb-lib文件(centos7系统中会默认安装一些关于mysql和mariadb文件),若有,强制删除文件。
rpm -qa|grep -i mariadb-libs
rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
image.png
(3)再次执行启动命令,发现还有报错,但报错信息改变( ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).)
image.png
(4)查看log文件(/usr/local/mysql/data/localhost.localdomain.err),提示utf-8的编码方式有问题。注销my.cnf文件(/usr/local/mysql/my.cnf)中关于设置utf-8的配置行。
image.png
注销设置utf-8的语句
image.png
(5)运行mysql,还是失败,提示信息不变。查看log信息有改变,提示Fatal error: Can’t open and lock privilege tables: Table ‘mysql.host’ doesn’t exist。
image.png
重新执行./scripts/mysql_install_db --user=mysql命令,再运行mysql,运行成功。
image.png
8、修改密码
MySQL启动之后用命令更改root用户的登录密码。
./bin/mysqladmin -u root -h localhost.localdomain password 'root'
image.png
更改成功后可登录MySQL
./bin/mysql -h127.0.0.1 -uroot -proot
image.png
登录之后将其他用户的密码更改成root
update mysql.user set password=password('root') where user='root';
flush privileges;
image.png
9、增加远程登录权限
需要用命令增加远程登录权限,否则远程用navicat登录会报错。
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;
image.png
10、将MySQL加入service系统服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
#用下面的命令执行成功,代表配置成功
service mysqld restart
service mysqld status
image.png
11、配置my.cnf文件
在my.cnf文件中增加几条语句。
vim my.cnf
#添加以下两条语句并保存退出
character-set-server=utf8
lower_case_table_names=1
max_allowed_packet=100M
image.png
配置好文件之后重启mysqld服务.
image.png
12、修改登录方式
完成以上步骤之后,发现登录MySQL只能用进入到/usr/local/mysql/bin/目录下执行mysql -uroot -proot才能登录,在其他目录下直接执行mysql -uroot -proot命令会提示找不到该命令。
这是因为系统会默认查找/usr/bin/下的命令,而mysql没有在这个目录下,所以会出现报错。
解决方式:
#将mysql的安装路径链接到/usr/bin目录下
ln /usr/local/mysql/bin/mysql /usr/bin/
image.png