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安装完成。