linux上安装mysql5.7
一、清理老的mysql
(1)卸载已有的mysql
查找以前是否装有mysql命令:
1 rpm -qa|grep -i mysql
停止mysql服务,卸载之前安装的mysql
1 rpm -ev 包名
如果卸载过程中报依赖错误,直接在卸载命名后面加参数 --nodeps
1 rpm -ev 包名 --nodeps
(2)查找之前老版本mysql的文件并删除老版本mysql的文件
1 find / -name mysql
2 # 出来一堆列表
3 # 一个一个删除就ok
二、安装前的准备
(1)安装mysql之前需要确保系统中有libaio依赖
1 yum search libaio
2 yum install libaio
(2)下载安装包(tar.gz的包,非rpm和yum)
1 cd /usr/
2 mkdir database
3 cd database
4 wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-el7-x86_64.tar.gz
(3)解压
1 tar -zxvf mysql-5.7.22-el7-x86_64.tar.gz
2 mv mysql-5.7.22-el7-x86_64 mysql5.7 #重命名为mysql5.7
三、安装
(1)添加用户和组
1 #添加用户组
2 groupadd mysql
3 #添加用户mysql 到用户组mysql(使用-r参数表示mysql用户是一个系统用户,不能登录)
4 useradd -r -g mysql mysql
5 #添加完用下面命令测试,能看到mysql用户的信息
6 id mysql
(2)手动创建MySQL data目录
1 cd /usr/database/mysql5.7/
2 mkdir data
(3)目录权限设置
1 将mysql及其下所有的目录所有者和组均设为mysql
2 chown -R mysql:mysql /usr/database/mysql5.7/
3 查看是否设置成功,执行下面命令,可以看到文件的所有者和组都变成了mysql
4 cd /usr/database/
5 ll
6 结果中出现:drwxr-xr-x 10 mysql mysql 4096 Jul 3 13:57 mysql5.7
(4)配置my.cnf文件
此文件非常重要,初始化之前要把此文件放到 /etc 目录下
1 rm -rf /etc/my.cnf
2 vim /etc/my.cnf
3 #此文件内容如下(路径根据自己的实际情况):
4 [client]
5 port = 3306
6 socket = /tmp/mysql.sock
7
8 [mysqld]
9 init-connect='SET NAMES utf8'
10 basedir=/usr/database/mysql5.7 #根据自己的安装目录填写
11 datadir=/usr/database/mysql5.7/data #根据自己的mysql数据目录填写
12 socket=/tmp/mysql.sock
13 max_connections=200 # 允许最大连接数
14 character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集
15 default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
(5)初始化mysql
1 /usr/database/mysql5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/database/mysql5.7 --datadir=/usr/database/mysql5.7/data
2 #注意:mysqld --initialize-insecure初始化后的mysql是没有密码的
3 #重新修改下各个目录的权限
4 chown -R root:root /usr/database/mysql5.7/ #把安装目录的目录的权限所有者改为root
5 chown -R mysql:mysql /usr/database/mysql5.7/data/ #把data目录的权限所有者改为mysql
(6)启动mysql
1 /usr/database/mysql5.7/bin/mysqld_safe --user=mysql &
(7)修改密码
1 cd /usr/database/mysql5.7/bin/
2 ./mysql -u root -p # 默认没有密码,直接敲回车就可以
3 use mysql;
4 update user set authentication_string=password('这里填你设置的密码') where user='root';
5 flush privileges;
6 exit;
(8)测试登录
1 cd /usr/database/mysql5.7/bin/
2 ./mysql mysql -u root -p
3 输入密码后,应该就连接上了
4 show databases;
5 exit; #退出
(9)copy启动脚本并将其添加到服务且设置为开机启动
1 #mysql启动脚本为:/usr/database/mysql5.7/support-files/mysql.server
2 cp /usr/database/mysql5.7/support-files/mysql.server /etc/init.d/mysql
3 #添加服务
4 chkconfig --add mysql
5 # 显示服务列表
6 chkconfig --list
7 # 开机启动
8 chkconfig --level 345 mysql on
9 # 测试添加的服务是否能用
10 service mysql status #查看状态
11 service mysql start #启动mysql服务
12 service mysql stop #停止mysql服务
四、设置外网可以访问
1 在mysql的bin目录下执行:mysql -uroot -p密码 登陆到数据:
2 执行:use mysql;
3 执行:select host,user from user;
4 可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。
5 调整方法:
6 执行:update user set host='%' where user ='root';
7 执行刷新:flush privileges;
8 OK!现在可以访问了!
9 如果还访问不了,那可能是防火墙问题,修改下防火墙就ok,修改方法这里就不提了,网上很多资料
五、相关说明
(1)mysql服务的启动和停止命令
1 service mysql status #查看状态
2 service mysql start #启动mysql服务
3 service mysql stop #停止mysql服务
(2)怎么在Linux中登录mysql
1 #进入mysql安装目录的bin目录,然后输入以下命令
2 ./mysql -u root -p
3 #然后输入密码就登录成功
4 exit; #退出mysql