记录一次在LINUX(Centos7)下mysql的安装过程
注意事项:此次安装的是mysql-5.7.24版本,其他版本安装不能完全适用此教程,主要原因在于配置文件的目录位置和结构有所改变,其他版本安装时要注意配置文件中的目录路径。
下面开始安装过程
一、检查是否已经安装mysql,若出现版本信息,执行删除命令
版本检查命令
[root@localhost /]# rpm -qa | grep mysql
删除命令
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
再次执行查询命令,查看是否删除
[root@localhost /]# rpm -qa | grep mysql
二、删除所有残留文件及目录
查看所有mysql对应文件夹
[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql
删除相关文件夹
[root@localhost /]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
验证
[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]#
三、检查mysql用户组和用户是否存在,没有则创建,该步骤一定要执行
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]#
四、MySQL安装包下载
下载命令
[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
也可以到mysql官网选择对应版本下载
五、安装
1、在下载的安装包或者上传的安装包目录下解压
[root@localhost /]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压完成后将解压文件移动到 /usr/local/ 下,并修改文件夹名称为mysql,若该目录下已有mysql文件夹将其删除后再移动
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
2、创建mysql的数据存储目录data,/usr/local/msyql/data
[root@localhost /]# mkdir /usr/local/mysql/data
3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql
如果没有用户组和用户,则重新创建用户组和用户,第三步有说明。
4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码),后期登录数据库时使用
[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
编译成功后记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。
5、编辑配置文件my.cnf,添加如下配置
[root@localhost bin]# vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
user=mysql
socket=/var/lib/mysql/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
6、测试启动MySQL服务器
[root@localhost /]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.. SUCCESS!
结果如上说明启动成功,下面介绍几种启动时遇见的情况及解决方法。
var/lib/mysql 目录不存在,
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
先创建目录mkdir /var/lib/mysql
赋权chmod -R 777 /var/lib/mysql
/var/log/mariadb/mariadb.log 目录不存在, log-error set to ‘/var/log/mariadb/mariadb.log’, however file don’t exists.
创建该目录及文件并赋权
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
提示 Starting MySQL… ERROR! The server quit without updating PID file
查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令
#查询服务
ps -ef|grep mysql | grep -v grep
ps -ef|grep mysqld | grep -v grep
#结束进程
kill -9 PID
#启动服务
/usr/local/mysql/support-files/mysql.server start
7、添加软连接,重启mysql服务
[root@localhost /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost /]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]# service mysql restart
8、登录mysql,修改密码(密码为步骤5生成的临时密码)
[root@localhost /]# mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');
9、开放远程连接
进入数据库后进行设置
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
10、设置开机自动启动
1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list
至此数据库安装完成。