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

[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





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键进入编辑状态

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

MySQL依赖于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';

其他的访问权限配置如下:

   下表显示了表中各种组合UserHost 如何 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.netx.example.comx.example.edu,等连接;这可能没有用

'fred'

'198.51.100.177'

Fred用户,从主机连接IP地址198.51.100.177

'fred'

'198.51.100.%'

Fred用户,从198.51.100C类子网中的任何主机连接

'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 

②在最下面添加 

# 配置Mysql环境变量
export PATH=$PATH:/usr/local/mysql/bin 

③使新加的环境变量立即生效 

  # source /etc/profile

十、重启,查看配置是否成功

①重启Centos7

# init 6 

②查看进程是否有mysql 

  # ps -ef|grep mysql

③用工具(如Navicat Premium)远程访问我们刚安装的mysql

选择连接 --> MySQL,在弹出的新建连接面板输入

Navicat新建连接图片

连接名字随便起。主机名或IP地址是你MySQL安装的机器的IP地址。用户名是root,

密码是第八步第②小步设置的远程登录的密码。点击'连接测试',提示连接成功,说明MySQL数据库安装成功。

如果安装mysql8.0,参考本文是可以成功安装并设置为自启的,但是也有可能会遇到其他问题,这时可以参考Mysql官方的参考手册中的安装说明文档。

猜你喜欢

转载自blog.csdn.net/github_39577257/article/details/77433996