MySQL版本:5.7
- 下载地址:https://dev.mysql.com/downloads/mysql/
1、下载MySQL5.7
- 进入上面的地址之后,按照如下操作:
- 选择版本5.7,linux-Generic下载:
2、解压
- 我已将下载后的文件解压至/usr/java目录,如下图:
解压命令:tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
3、创建一个用户名为mysql的用户并加入mysql用户组
groupadd mysql #添加系统mysql组
useradd -r -g mysql mysql #添加mysql用户(添加完成后可用id mysql查看)
附图:
4、修改mysql根目录所属用户组
- 修改解压的目录拥有者为mysql用户,进入到解压目录(根目录)之后执行如下命令:
cd /usr/java/mysql-5.7.27-linux-glibc2.12-x86_64 #进入mysql根目录
chown -R mysql:mysql ./
5、安装数据库
- 先在mysql的根目录下创建一个data文件夹,用于存储数据:
mkdir data #创建一个文件夹
之后执行如下命令安装mysql数据库:
./bin/mysqld
--initialize
--user=mysql
--basedir=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64
--datadir=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64/data
执行上面的命令可能会出现的错误:
1)、./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
- 解决办法:
yum install -y libaio
- 解决办法:
- 2)、
bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
- 解决办法:
yum -y install numactl.x86_64
- 解决办法:
- 当出现如下日志,说明安装成功了:
需要记录下最后一行的密码,是root账号的初始密码,如上图,红色方框标记的地方。
6、再修改当前根目录所属用户组
- 修改当前目录拥有者为mysql用户,进入到解压目录(根目录)之后执行如下命令:
chown -R mysql:mysql ./
7、修改my.cnf配置文件
- 修改/etc/my.cnf配置文件,修改内容为如下(或者是直接覆盖):
[client]
socket=/tmp/mysql/mysql.sock
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64 #目录需要跟安装目录对应
datadir=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64/data #目录需要跟安装目录对应
socket=/tmp/mysql/mysql.sock
#不区分大小写
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#设置时区
default-time-zone = '+08:00'
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64/data/mysqld.pid
!includedir /etc/my.cnf.d
保存退出即可。
8、设置开机启动
- 复制文件
cp /usr/java/mysql-5.7.27-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysqld
修改/etc/init.d/mysqld文件内容:
vim /etc/init.d/mysqld #打开文件
#修改46 和 47行为如下:
basedir=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64
datadir=/usr/java/mysql-5.7.27-linux-glibc2.12-x86_64/data
保存退出即可。
9、启动mysql服务
service mysqld start #启动mysql服务
service mysqld status #查看mysql服务状态
service mysqld stop #停止mysql服务
service mysqld restart #重启mysql服务
- 如果在启动mysql服务时出现如下错误:
1)、Starting MySQL.2019-08-24T11:28:12.406529Z mysqld_safe Directory '/tmp/mysql' for UNIX socket file don't exists.
- 解决办法:因为我们将mysql.sock文件存在了 /tmp/mysql/目录下,但是/tmp/目录下没有mysql文件夹,新建一个就可以了:
mdkir /tmp/mysql
- 解决办法:因为我们将mysql.sock文件存在了 /tmp/mysql/目录下,但是/tmp/目录下没有mysql文件夹,新建一个就可以了:
- 2)、
The server quit without updating PID file (/usr/java/mysql-[FAILED]inux-glibc2.12-x86_64/data/ecs-s6-large-2-linux-20190822165314.pid).
- 解决办法:因为我们将mysql.sock文件存在了 /tmp/mysql/目录下,mysql用户没有操作此目录权限,修改下权限就可以了:
chomod 777 /tmp/mysql/
- 解决办法:因为我们将mysql.sock文件存在了 /tmp/mysql/目录下,mysql用户没有操作此目录权限,修改下权限就可以了:
10、登录mysql
- 当在控制台输入mysql时,提示:
-bash: mysql: command not found
需要添加软连接才能快捷启动:ln -s /usr/java/mysql-5.7.27-linux-glibc2.12-x86_64/support-files/mysql /usr/bin
开始登陆mysql:
mysql -u root -p # 回车输入密码即可
如果连接mysql出现如下错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决办法:检查/etc/my.cnf文件中客户端节点的socket变量是否配置正确,配置正确之后重启服务即可。