Centos7环境下离线安装mysql 5.7 / mysql 8.0
一、下载Mysql的安装包
到mysql官网下载自己想要安装的mysql的版本(例如现在下载社区版64位linux版)
或者直接通过wget下载mysql-5.7.22的安装包:
64位 # wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
32位 # wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-i686.tar.gz
通过wget下载mysql8.0版本
64位 # wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
32位 # wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz
二、解压Mysql
①将下载的压缩包解压
# tar -xzvf mysql-5.7.22-linux-glibc2.5-x86_64.tar.gz
②将解压的文件移动到一个安装目录下
# mv mysql-5.7.22-linux-glibc2.5-x86_64 /usr/local
③修改名字(进到/usr/local下)
# mv mysql-5.7.22-linux-glibc2.5-x86_64 mysql
三、创建用户和组
①建立一个mysql的组
# groupadd mysql
②建立mysql用户,并且把用户放到mysql组
# useradd -r -g mysql mysql
③还可以给mysql用户设置一个密码
# passwd mysql 回车设置mysql用户的密码
④修改/usr/local/mysql 所属的组和用户
# chown -R mysql:mysql /usr/local/mysql/
四、修改配置文件
①创建mysql配置文件
在/usr/local/mysql/support-files目录中创建 my_default.cnf,然后编辑
# vi my_default.cnf
[code][mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 socket=/var/lib/mysql/mysql.sock character-set-server=utf8 [client] default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysql] default-character-set=utf8 socket=/var/lib/mysql/mysql.sock[/code]
Esc 键,输入:wq保存
②复制my.cnf 到 /etc/my.cnf
# cp my_default.cnf /etc/my.cnf
③实现mysqld -install这样开机自动执行效果
复制mysql.server 到/etc/init.d/ 目录下
# cp mysql.server /etc/init.d/mysql (mysql是服务名,可自定义取)
④修改 /etc/init.d/mysql 参数
# vi /etc/init.d/mysql
找到如下的地方并进行编辑
# vim mysql 按方方向下键找到如下地方,按i键进入编辑状态
[code]basedir=/usr/local/mysql datadir=/usr/local/mysql/data
Esc键退出编辑模式,输入 :wq保存退出
⑤创建存放socket文件的目录(路径就是my.cnf配置文件中的socket配置的路径)
# mkdir -p /var/lib/mysql
修改组和用户为mysql
# chown mysql:mysql /var/lib/mysql
⑥添加服务mysql
# chkconfig --add mysql
⑦设置mysql服务为自动
# chkconfig mysql on
五、初始化mysql服务
①安装libaio
libaio库(Linux下的一个异步非阻塞接口),所以先要安装 libaio。
# yum install libaio
②进入到/usr/local/mysql/bin 初始化mysql
# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
这一步如果没有错误,会在/usr/local/mysql下看到生成了一个data文件夹,这个就是数据库的目录。
同时,在初始化的时候,会生在最后出现一行(一般在最后两行,找到root@localhost:后面的就是密码):
2017-08-14T03:53:43.802593Z 1 [Note] A temporary password is generated for root@localhost:>ovsP%ThQ1th
红色的就是第一次登陆mysql的临时密码(最好先复制下来)。
③给数据库加密 (还是在mysql多的bin目录下执行)
# ./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
六、启动mysql
①启动mysql服务
# ./mysqld_safe --user=mysql &
过段时间,当不再刷屏时,按Ctrl + C退出后台进程
# /etc/init.d/mysql restart
②查看mysql进程
# ps -ef|grep mysql
七、第一次登陆mysql数据库
①登陆 # ./mysql -uroot -p
输入初始化得到的临时密码(防止输错,最好复制前面初始化得到的临时密码):>ovsP%ThQ1th
②修改密码
mysql> set password=password('root用户的密码');
如果是mysql 8.0版本修改用户密码用一下命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root用户的密码';
③退出mysql
mysql> exit;
八、设置远程访问
①开放防火墙的3306端口 (如果防火墙已经关闭,略过此步)
# firewall-cmd --permanent --zone=public --add-port=3306/tcp
# firewall-cmd --permanent --zone=public --add-port=3306/udp
立即生效
# firewall-cmd --reload
②在mysql中添加一个远程访问的用户
使用mysql库
mysql> use mysql;
查看user表的host和user信息
mysql>select host,user from user;
root 用户的 host默认显示的 localhost,说明只支持本地访问,不允许远程访问
设置远程账户名和密码(mysql 8.0会报错,请用橘色的字来设置远程访问)
mysql> grant all privileges on *.* to 'root'@'%' identified by '远程访问mysql的密码' with grant option;
在mysql 8.0版本中有一个坑,我们可以查询mysql.user表
mysql> select host,user,plugin,authentication_string from user;
会发现root用户的加密方式为"caching_sha2_password",远程工具一般还不支持此种加密方法,
所以需要先修改root用户的加密方式为"mysql_native_password",使用如下命令修改
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'root用户的密码';
mysql> flush privileges;
再修改root用户允许任意ip地址远程访问
mysql> update mysql.user SET host='%' WHERE user='root';
其他的访问权限配置如下:
下表显示了表中各种组合User和Host值 如何 user适用于传入连接。
User 值 |
Host 值 |
允许的连接 |
'fred' |
'h1.example.net' |
Fred用户,从h1.example.net连接 |
'' |
'h1.example.net' |
任何用户,从h1.example.net连接 |
'fred' |
'%' |
Fred用户,从任何主机连接 |
'' |
'%' |
任何用户,从任何主机连接 |
'fred' |
'%.example.net' |
fred,从example.net域中的任何主机连接 |
'fred' |
'x.example.%' |
fred,从x.example.net,x.example.com,x.example.edu,等连接;这可能没有用 |
'fred' |
'198.51.100.177' |
Fred用户,从主机连接IP地址198.51.100.177 |
'fred' |
'198.51.100.%' |
Fred用户,从198.51.100的C类子网中的任何主机连接 |
'fred' |
'198.51.100.0/255.255.255.0' |
与前面的例子相同 |
注:本表来源于官方文档:https://dev.mysql.com/doc/refman/8.0/en/connection-access.html
③刷新配置
mysql> flush privileges;
九、设置环境变量
①修改profile
# vi /etc/profile
②在最下面添加
[code]# 配置Mysql环境变量 export PATH=$PATH:/usr/local/mysql/bin
③使新加的环境变量立即生效
# source /etc/profile
十、重启,查看配置是否成功
①重启Centos7
# init 6
②查看进程是否有mysql
# ps -ef|grep mysql
③用工具(如Navicat Premium)远程访问我们刚安装的mysql
选择连接 --> MySQL,在弹出的新建连接面板输入
连接名字随便起。主机名或IP地址是你MySQL安装的机器的IP地址。用户名是root,
密码是第八步第②小步设置的远程登录的密码。点击'连接测试',提示连接成功,说明MySQL数据库安装成功。
如果安装mysql8.0,参考本文是可以成功安装并设置为自启的,但是也有可能会遇到其他问题,这时可以参考Mysql官方的参考手册中的安装说明文档。
阅读更多
- [centos] 环境安装之 mysql离线版压缩包(mysql-5.7.16-linux-glibc2.5-x86_64.tar)
- CentOS 上 编译MySQL-5.7.x 或者 MySQL-8.0 源码 及多实例安装
- CentOS 6.x 7.x yum安装nginx1.12-php7-mysql5.7环境
- Centos 7环境下安装配置MySQL 5.7
- Mysql 5.7 Centos7 环境安装
- CentOS 上 编译MySQL-5.7.x 或者 MySQL-8.0 源码 及 多实例安装
- mysql-5.7(centos-6.9环境)源码安装
- mysql(5.7)在CentOs7下的安装、配置与应用
- CentOS下nginx+mysql+php环境安装,小结
- CentOS下安装LNMP(LINUX+NGINX+MYSQL+PHP)环境
- CentOS 7 下使用 RPM 安装 MySQL5.7
- 阿里云环境Centos下安装MySql遇到的问题记录.
- 【Linux】- CentOS安装Mysql 5.7
- CentOS5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装wordpress
- CentOS 6.5/6.6 安装mysql 5.7 最完整版教程
- liunx7下centos6.8编译安装mysql-5.7.18
- CentOS 6.5 64位环境下以rpm的形式安装mysql5.6
- Centos7.3安装和配置Mysql5.7
- CentOS 6.5 LNMP环境搭建 编译安装Mysql