四、安装配置MySQL
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。——摘自百度百科
1、检查是否已安装
使用命令sudo rpm -qa | grep mysql
如上图所示,即未安装
2、下载安装包
在MySQL官网中找到相应的安装包,如下图:
下载MySQL安装包到 /usr/targz 文件夹,使用命令sudo wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
因官网下载太慢,故使用网易云镜像文件进行下载,使用命令sudo wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
3、解压文件
使用命令 sudo tar -xvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
将解压后的文件移动到 /usr/local 中,并重命名为 mysql,使用命令sudo mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysql
进入安装目录,使用命令cd /usr/local/mysql
4、添加用户&用户组
为CentOS添加 mysql用户组 和 mysql用户 ,使用命令sudo groupadd mysql
和sudo useradd -r -g mysql -s /bin/false mysql
(其中-s /bin/false
参数指定mysql用户仅拥有 所有权 ,而没有 登录权限 )
5、修改目录所有者
修改当前目录拥有者为新建的MySQL用户,使用命令sudo chown -R mysql:mysql ./
6、安装
安装MySQL,使用命令sudo ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
安装成功后将显示上图的信息,最后面会生成root@localhost
的 随机口令 ,将该口令记下
7、开启MySQL服务
使用命令sudo ./support-files/mysql.server start
期间遇到两个问题,具体如下:
7.1 出现报错信息:mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log'
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
原因:
没有该文件的权限
解决方案:
- 使用命令
ls /var/log/
查看是否存在 /var/log/mariadb/mariadb.log 文件
从上图可知没有该文件,甚至没有 mariadb 这个文件夹,故使用命令sudo mkdir /var/log/mariadb
新建文件夹
再使用命令sudo touch /var/log/mariadb/mariadb.log
新建文件
- 给当前用户赋予该文件的权限,使用命令
sudo chown -R mysql:mysql /var/log/mariadb/
再次执行命令sudo ./support-files/mysql.server start
出现报错信息mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists
.
根据上面的思路同样先使用命令ls /var/lib/
查看是否存在mysql目录
从上图也可知,并不存在该目录,故使用命令sudo mkdir /var/lib/mysql
创建目录
接着同样需要对当前用户赋予该目录写权限,使用命令sudo chmod -R 755 /var/lib/mysql/
再次执行启动命令
7.2 出现报错信息:ERROR! The server quit without updating PID file
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
引起原因很多,需逐一排查:
原因1:
MySQL在启动时没有指定配置文件时会使用 /etc/my.cnf 配置文件
解决方案1:
打开这个文件查看在 [mysqld] 节下有没有指定数据目录(datadir),加上datadir = /usr/local/mysql/data
原因2:
SELinux惹的祸,如果是CentOS系统,默认会开启 SELinux
解决方案2:
关闭它,使用命令sudo vi /etc/selinux/config
打开其配置文件,把SELINUX=enforcing
改为SELINUX=disabled
后保存并重启
使用命令systemctl reboot -i
重启
赋予权限,使用命令 sudo chmod -R 755 ./
,再次执行
再次出现报错信息
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
解决方案:
在 /var/lib/mysql 目录下新建 localhost.localdomain.pid 文件,使用命令 sudo touch /var/lib/mysql/localhost.localdomain.pid
若经过尝试,发现以上方案都无法解决该报错,则说明是
原因3:
存在某些软件(如MariaDB)与MySQL有冲突
解决方案3:
删除MySQL整个目录,使用命令sudo rm -rf /usr/local/mysql
,再使用命令sudo rpm -qa | grep mariadb
查看是否已安装
由上图可知,已安装过该软件,则使用命令sudo rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
卸载该软件
再依次执行上述的3-6的步骤,最后执行命令 sudo ./support-files/mysql.server start
启动
由上图可知,已可以正常开启MySQL