linux下安装mysql步骤分享

本文档讲解安装版本为mysql-5.7.29,对于5.7.29之后的版本,不适用此说明文档,主要原因在于之后版本的mysql配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。

安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。

linux系统版本: CentOS 7.7 64位

安装源文件版本:mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

mysql安装位置:/usr/local/mysql/

数据库文件数据位置:/usr/local/mysql/data

一、安装前准备

1、检查是否已经安装过mysql,执行命令

[root@localhost /]# rpm -qa | grep mysql
image

从执行结果,可以看出我们已经安装了 mysql-libs-5.1.73-5.el6_6.x86_64 ,执行删除命令

[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,查看是否删除

[root@localhost /]# rpm -qa | grep mysql
image

2、查询所有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 /]#

3、检查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 /]#

4、从官网下载是用于Linux的Mysql安装包

下载命令:

[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

也可以直接到mysql官网选择其他版本进行下载。
image

二、安装Mysql

1、在执行 wget 命令的目录下或你的上传目录下找到Mysql安装包: mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
执行解压命令:

[root@localhost /]#  tar xzvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.29-linux-glibc2.12-x86_64
mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到 /usr/local/ 下,并将文件夹名称修改为 mysql

如果 /usr/local/ 下已经存在 mysql ,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。

执行命令如下:

[root@localhost /]# mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/
[root@localhost /]# cd /usr/local/
[root@localhost /]# mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
 

如果 /usr/local/ 下不存在 mysql 文件夹,直接执行如下命令,也可达到上述效果。

[root@localhost /]# mv mysql-5.7.29-linux-glibc2.12-x86_64 
 /usr/local/mysql

2、在 /usr/local/mysql 目录下创建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
 

补充说明*
第4步时,可能会出现错误:找不到datadir和basedir路径。

出现该问题请跳到第6步,修改my.cnf文件的datadir和basedir。

第4步时,可能会出现错误:
image

出现该问题首先检查该链接库文件有没有安装

[root@localhost bin]# rpm -qa|grep libaio

[root@localhost bin]#

运行命令后发现系统中无该链接库文件,那就安装下

[root@localhost bin]# yum search libaio

[root@localhost bin]# yum install libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误,是因为libnuma安装的是32位,我们这里需要64位的
image

执行如下命令后可以解决:

[root@localhost bin]# yum -y install numactl.x86_64

执行无误之后,再重新执行第4步初始化命令,无误之后再进行第5步操作!

5、运行初始化命令成功后,输出日志如下:

注意:mysql 5.7.29版本执行初始化命令后不会打印日志,查看日志可到/usr/local/mysql/data/mysqld.log

image
记录日志最末尾位置 root@localhost: 后的字符串,此字符串为mysql管理员临时登录密码。

6、编辑配置文件my.cnf,在[mysqld]下添加datadir和basedir这两行:
image

datadir=/usr/local/mysql-5.7.29/data

basedir=/usr/local/mysql-5.7.29

7、启动mysql服务器

[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

显示如下结果,说明数据库安装成功
image

如果出现如下提示信息
image

查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令
image
image

8、添加软连接,并重启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 /]# /usr/local/mysql/support-files/mysql.server restart

9、登录mysql,重置密码

重置密码的第一步要跳过mysql的密码认证过程,方法如下

vim /etc/my.cnf (注:windows下修改的是my.ini)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程。

然后重启mysql

[root@localhost /]# /usr/local/mysql/support-files/mysql.server restart

敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中

[root@localhost /]# mysql -u root -p

Enter password:

mysql>set password for root@localhost = password(‘yourpass’);
image

注意:如果在执行该步骤的时候出现 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 错误。则执行下 flush privileges 命令,再执行该命令即可。

最后,把my.cnf中添加的“skip-grant-tables”去掉,再次登录mysql时就可使用设置的新密码了。

10、开放远程连接

mysql>use mysql;

msyql>update user set user.Host=‘%’ where user.User=‘root’;

mysql>flush privileges;
image

11、添加系统路径

vim /etc/profile
添加:
export PATH=/usr/local/mysql/bin:$PATH
image
source /etc/profile

12、设置开机自动启动
image

很棒哦,这种分享类的可以挪到院内交流或者环境配置呢