目录
2)The designated data directory /data/mysql/ is unusable
3)Can't connect to local MySQL server through socket '/tmp/mysql.sock'
5)未在my.cnf 设定的正确位置产生pid,sock等文件。
介绍
mysql 是一种RDBMS 关系型数据库管理系统 Relational Database Management System
关系型数据库将数据保存在不同的表中,而不是放在一个大仓库内,增加了速度,提高了灵活性。
.
mysql版本
5.7.x 和 8.0.x 是目前主流。2个版本有性能上差异。
一般三个月迭代一个小版本
.
安装
0、删除随系统安装的mariadb
默认linux会安装mariadb,会造成my.cnf等配置的冲突,不能读入默认的my.cnf配置文件。
当发现指定了这个配置文件启动但没有在设定的位置产生log、pid 等文件的时候就来检查下这个问题。
rpm -qa | grep mariadb #查看是否存在mariadb安装
rpm -e --nodeps mariadb-libs #卸载包。 --nodeps 不检验依赖
1、下载
去官网 https://dev.mysql.com/downloads/mysql/ 下载 Community(社区版) 的 generic(通用版) 二进制包文件。
mysql一般不用源码包编译因为时间太久。
.
看一下自己系统的C文件库是多少版本
.
2、解压
下载文件名为 mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz ,需用 J 而不是 z 来解压。
tar Jxvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz
.
做一个软链接让名字变短点。
ln -s mysql-8.0.33-linux-glibc2.17-x86_64-minimal mysql
.
3、创建用户
useradd -s /sbin/nologin mysql 创建一个无系统登录权限的mysql用户
useradd -s /sbin/nologin mysql
.
4、创建数据目录
mkdir -p /data/mysql
最好是单独在一个大的分区且是性能比较好的磁盘。数据库对磁盘读写的性能要求比较高。
.
设定数据目录的属主属组为要写入的用户名
chown -R mysql:mysql /data/mysql
.
5、核心启动配置文件
/etc/my.cnf
( 很多linux会默认自带有mariadb的配置文件,看内容可识别出来)
客户端【mysql】可配置端口和socket等,也可不配置(也可用【client】配置)。
重要的是服务端【mysqld】的配置,介绍几个最核心配置:
basedir —— 指定mysql程序路径
datadir —— 指定数据存放路径
socket —— .sock套接字文件是linux本地进程之间通信的一种方式,不熟悉mysql不建议改路径。有个细节,客户端和服务端的socket必须一致。如果只设定服务端里的socket会出问题。最后错误归结里有一个专门说这个问题的。
mysqlx_socket —— 8.0版本用于MySQL X 管理协议,端口33060。从 MySQL 8.0.14 开始,MySQL 服务器允许专门为管理连接配置 TCP/IP 端口。这为用于普通连接的网络接口上允许的单个管理连接提供了一种替代方法,即使已经建立了 max_connections 连接,但这个协议的端口不算在连接数内。但只有在启动时设置了 admin_address 系统变量以指示管理