Linux 用 tar.gz 压缩包安装 MySQL 5.7

1. 准备工作

下载

请前往 MySQL 官网 下载所需的安装包。
在下载页面进行如下选择,下载 tar.gz 压缩包。
在这里插入图片描述

上传并解压

使用 Xftp 或 rz 命令将压缩包上传到 Linux 服务器 /usr/local/ 路径
解压tar.gz文件,并重命名解压后的文件夹为mysql:

tar zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql

卸载冲突数据库

如果 Linux 中存在 mariadb 等系统自带数据库,需要及时删除,否则会冲突
查找 mariadb

rpm -qa | grep -i mariadb

mariadb-libs-5.5.44-2.el7.x86_64
卸载

rpm -ev --nodeps mariadb-libs-5.5.44-2.el7.x86_64

如果之前安装过 mysql,那么不仅需要卸载,还需要删除所有 mysql 文件夹:

rpm -qa | grep -i mysql
rpm -ev mysql-5.7.12.x86_64
find / -name '*mysql*'
rm -rf (directories about mysql)

2. 安装

查看用户组

groups mysql

查询结果应为 mysql: mysql
如果没有的话应该使用:

groupadd mysql
useradd -g mysql mysql

为 mysql 用户授权

cd /usr/local/
chown -R mysql:mysql mysql/

配置 mysql.server

在其中加入:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

配置 my.cnf 文件

由于 mysql 5.7.18 之后取消了 my-default.cnf,无法拷贝,所以需要手动创建 my.cnf 文件:

touch /etc/my.cnf

my.cnf 详细配置可以参考 Windows 系统下已经安装好的 MySQL 的配置文件 my.ini,除了 basedir 和 datadir 文件不同,并且需要加上 log-error 和 pid-file 配置,其中,log-error 所在日志文件会记录 mysql 的初始密码,my.cnf 中详细配置信息如下:

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

注意,需要手动创建 log 文件夹和 mysqld.log 文件。

mysqld 初始化

先切换到 mysql 用户:

su mysql

执行 mysqld 初始化:

cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

如果报如下错误:

2019-10-08T09:19:24.618827Z 0 [ERROR] --initialize specified but the data directory hs in it. Aborting.
2019-10-08T09:19:24.618871Z 0 [ERROR] Aborting

那么需要删除 /usr/local/mysql/data/ 下所有文件。
如果报如下错误:

2019-10-08T09:22:37.560820Z 0 [ERROR] Could not open file '/usr/local/mysql/log/mysqlfor error logging: Permission denied
2019-10-08T09:22:37.560843Z 0 [ERROR] Aborting

那么需要将 log 下的 mysqld.log 权限改为 mysql:mysql

chown mysql:mysql mysqld.log

执行完毕后,在日志中可以查看到初始密码:

vim /var/log/mysqld.log

其中有一句日志:

2019-08-26T08:33:45.119759Z 1 
[Note] A temporary password is generated for root@localhost: Ex9UJofddr-x

创建软链接

创建软链接,为 Linux 系统加上 mysql 相关命令,相当于在 Windows System32 目录下的各种 exe 文件,代表着系统直接可以执行的命令:

ln -s /usr/local/mysql/bin/mysql /usr/bin

创建完成后,可以发现 /usr/bin 路径下多了一条 mysql 相关的软链接:

ll /usr/bin/mysql 
lrwxrwxrwx. 1 root root 26 Aug 26 14:44 /usr/bin/mysql -> /usr/local/mysql/bin/mysql

mysqld 配置

拷贝启动文件到 /etc/init.d/ 下并重命令为 mysqld

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

增加执行权限

chmod 755 /etc/init.d/mysqld

检查自启动项列表中没有 mysqld

chkconfig --list mysqld

如果没有就添加 mysqld

chkconfig --add mysqld

设置开机启动

chkconfig mysqld on

启动测试

service mysqld start

登录 mysql

mysql -u root -p

回车,输入 log 中记录的初始密码,登录成功。
或者在 my.cnf 中加入:

skip-grant-tables

重启 mysql:

service mysqld start

这样可以免密登录。
同时修改初始密码:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

允许远端登录:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;  

此时再使用 SQLyog 等 GUI 软件使用 mysql 服务器 IP 和新密码登录
便可以开始愉快地使用 mysql 了。

附:参考博客

linux下安装mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz(centos)
liunx下安装mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

发布了79 篇原创文章 · 获赞 322 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_15329947/article/details/100081957