Linux下安装mysql5.7

Posted 山有木兮木有枝,道亦难兮何不知

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下安装mysql5.7相关的知识,希望对你有一定的参考价值。

一  官网下载 mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz

目前最新为5.7.16,可以直接下载mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz,

这里用的是5.7.12,未下载最新的,不过,安装方式一样。

官网地址: http://www.mysql.com/downloads/

技术分享图片

点击Mysql Community Server后进入如下页面:

技术分享图片

选择对应位数版本点击Download,目前官网已经更新到5.7.16,可以直接下载最新版本安装,5.7安装方式一样:

技术分享图片

进入下载页面点击下载即可:

技术分享图片

下载完后通过Xftp等方式上传到linux系统习惯目录下。

二  安装mysql

******(1) 卸载mysql******

如果系统没有安装过mysql,此步骤不需要

1. 关闭mysql服务

技术分享图片

2. 检查是否有rpm包,如果没有用rpm安装过mysql,不应该有残留,如果有,需要删掉

检查语法: rpm -qa|grep -i mysql

删除语法: rpm -e <包的名字>

如果遇到依赖,无法删除,使用 rpm -e --nodeps <包的名字> 不检查依赖,直接删除rpm包。

技术分享图片

3. 通过find命令检查是否有安装mysql文件,有需要删除

检查语法: find / -name mysql

删除语法: rm -rf 目录文件(或文件)

技术分享图片

除了自己下载的或解压的,其余的都干掉。

 

******(2)创建mysql分组和用户******

1. 暴力删除mysql用户

删除语法: userdel -r -f mysql(如果没有,会提示你mysql不存在,不用在意)


2. 添加分组

添加语法: groupadd mysql

 

3. 添加mysql用户

添加语法: useradd -g mysql mysql

 

4. 给mysql用户设置密码

passwd mysql

 

如图:

技术分享图片

关于: userdel: warning: can‘t remove /var/spool/mail/mysql: No such file or directory

因为没有/var/spool/mail/mysql,所以警告,通过find / -name mysql确实没有检查到,

不用管提示,直接往下创建分组和添加mysql用户即可。

如果系统没有安装过mysql,应该不会出现这种情况。

 

******(3)解压tar包******

1. cd到mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz目录

技术分享图片

 

2. 解压tar包

解压语法:tar zxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz 

解压后多出一个mysql-5.7.12-linux-glibc2.5-x86_64的文件,

将这个文件复制到自己喜欢的目录,重命名为mysql,复制的时候请耐心等待,

复制完后,cd到mysql目录,新建一个data的文件夹。

复制语法: cp -r mysql-5.7.12-linux-glibc2.5-x86_64  /usr/local/mysql

新建文件语法: mkdir data

如图:

技术分享图片

 

******(4)安装执行******

1. cd到/usr/local/mysql目录,如果已经在mysql目录,无需改变

通过pwd查看当前所在目录,确认是否在mysql目录

技术分享图片

 

2. cd到/usr/local/mysql/bin目录,执行如下命令

./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

回车执行即可

执行结果如图:

技术分享图片

 

3. 从上图中的警告可以看出,mysql_install_db已经不再使用了,建议我们使用mysqld进行安装,执行如下命令

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

回车执行即可

如图:

技术分享图片

回车后,看到打印出一大堆信息,看上去很有希望,耐心等待。

当然了,如果看到最后打印到:

Version: ‘5.7.12‘  socket: ‘/tmp/mysql.sock‘  port: 3306  MySQL Community Server (GPL)

如图:

技术分享图片

如果看到这句话的时候,如果你用的是shell,复制一个终端窗口,在新窗口中继续下面的操作。

复制方法如图:

技术分享图片

 

******(5)测试mysql是否能启动******

1. cd到/usr/local/mysql/support-files/

编辑mysql.server,语法为: vim mysql.server

如图:

技术分享图片

 

 2. 修改basedir和datadir路径

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

如图:

技术分享图片

 

3. 保存并退出,如果使用x命令无法保存退出,可以使用wq!保存并强制退出

保存并退出步骤:

先按键盘最左上角的Esc键,

然后按住shift键,并且输入:号

最后输入wq!

回车保存并退出

如图:

技术分享图片

 

4. 启动测试

./mysql.server start

如图:

技术分享图片

如果你看到Starting Mysql SUCCESS!, 说明我们已经成功安装了MySql,因为我们启动成功了,

如果走到了这步成功,继续往下参考,否则需要仔细检查下是什么地方出问题了。

注意:安装仅供参考,如有毛病,还请多包容,每个人的系统或环境有区别。

 

******(6)创建软连接******

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

如图:

技术分享图片

软连接有啥用,说白了,就是给linux系统加上mysql这个命令,linux系统命令放在/usr/bin下,

与在windows中命令存在C:\Windows\System32目录下一样,windows上命令都是xxx.exe形式,

比如telnet.exe,如果没有这个文件,windows命令窗口使用的时候就会提示命令telnet命令不存在,

这个地方操作,就是为了后面使用mysql命令的时候,能够有这个命令做铺垫。

 

******(7)创建mysql配置文件******

1. my.cnf配置

首先,如果/etc/my.cnf存在,直接删掉my.cnf

然后,mv /usr/local/mysql/support-files/my-default.cnf  /etc/my.cnf

编辑,vim /etc/my.cnf

如图:

技术分享图片

在my.cnf中,找到[mysqld],在此下增加如下配置:

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

character_set_server=utf8

[client]

default-character-set=utf8

同时删掉或注释掉my.cnf文件中的内容:

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

如图:

技术分享图片

最后保存并退出。

 

2. mysqld配置

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

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

 

2.2. 增加执行权限

chmod 755 /etc/init.d/mysqld

 

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

chkconfig --list mysqld

 

2.4. 如果没有就添加mysqld

chkconfig --add mysqld

 

2.5. 设置开机启动

chkconfig mysqld on

 

2.6. 启动测试

service mysqld start

 

如图:

技术分享图片

说明我们的配置文件成功,mysql彻底安装完成。

 

******(8)重置密码******

1. 修改配置文件my.cnf

vim  /etc/my.cnf

 

2. 找到[mysqld]在之后添加

skip-grant-tables

保存退出

 

3. 重启mysql服务
service mysqld  restart

重启如图:

技术分享图片

4. 直接登陆mysql而不需要密码

mysql -u root -p (一路直接回车)

进入后的效果:

技术分享图片

 

5. 在mysql中输入

update mysql.user set authentication_string=password(‘123456‘) where user=‘root‘;

 

6. 刷新权限
flush privileges

如图:

技术分享图片

 

7. 退出mysql,到my.cnf中把开始添加的skip-grant-tables注释掉或删掉

 


8. 重启mysql服务

service mysqld  restart

 

9. 登录

mysql -u root -p

输入密码,即可。

如图:

技术分享图片

 

完成以上工作后,我们的mysql算是装完了,但是,想让外界可以通过工具连接还需要设置。

******(9)工具连接3306端口数据库******

1. 登陆mysql

mysql -u root -p

 

2. 修改mysql库的user表,将host项,从localhost改为%。

%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip。

 

注:以下命令建议手动输入,避免不必要的麻烦。

3. use mysql;

 

4. SET PASSWORD = PASSWORD(‘123456‘);


5. update user set host = ‘%‘ where user = ‘root‘; 

6. select host, user from user;

7. flush privileges;

 

如图:

技术分享图片

 

8. 防火墙开放3306端口

编辑iptables文件:

技术分享图片

在文件中增加3306端口,保存并退出,比如:

技术分享图片

重启iptables:

语法: service iptables restart

如图:

技术分享图片

 

9. 让我们用工具连接试试

输入你数据库所在服务ip, 数据库密码,上面设置的密码是123456,根据你设置而定。

技术分享图片

一路确定,看到默认效果:

技术分享图片

通过工具,任意操作数据库。

到此,mysql安装完成。

 

以上是关于Linux下安装mysql5.7的主要内容,如果未能解决你的问题,请参考以下文章

linux下安装mysql5.7.17及简单配置

Linux下安装mysql5.7

Linux下mysql5.7安装

linux 环境下安装MySQL5.7(yum)

centos 7(linux) 下安装mysql5.7

Linux rhel7 下MySQL5.7.18详细安装文档