今天下班还算早,开启电脑看到自己双十二购买的云服务器居然还没有安装mysql,我第一时间打开百度开始搜索,当我搜centos安装mysql的时候,我内心无比的愧疚,工作这么时间,基础安装教程还用搜?

一、下载mysql

去官网下载;(我们已经下载好)https://www.mysql.com,但是!!!!!下载速度太慢了!!!!所以我提前下载好了

下载地址:mysql-5.7.24-linux-glibc2.12-x86_64.tar 提取码:r4pa    

二、检查是否安装过有mariadb

检查Linux是否安装了mariadb数据库,mariadb数据库是mysql的分支,执行命令:

yum list installed | grep mariadb

如果Linux中安装了mariadb数据库,先卸载掉,mariadb数据库与安装mysql会发生冲突,执行命令:

yum -y remove mariadb-libs.x86_64

三、安装mysql

(1)解压下载下来的mysql软件压缩包,执行命令:

tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

(2)将解压后的mysql-5.7.24-linux-glibc2.12-x86_64改名为mysql-5.7.24 或者 mysql

mv mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz mysql-5.7.24

(3)在mysql-5.7.24文件夹目录下创建一个/data/3306文件夹,切换到mysql-5.7.24目录,执行命令;

mkdir data,然后再data目录下再创建 3306 文件夹

(4)添加mysql用户及用户组,执行命令:

groupadd mysql
useradd mysql -g mysql

-g: 是指定用户所在组

(5)、切换到mysql-5.7.24/bin目录下执行:

./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql-5.7.24/data/3306 --basedir=/usr/local/mysql-5.7.24

其中 --initialize-insecure 表示不生成临时密码

(6)、在mysql-5.7.24/bin目录下执行命令:

./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.24/data/3306

7、更改mysql-5.7.24整个文件夹目录权限所属,执行命令:

chown -R mysql:mysql /usr/local/mysql-5.7.24

配置:

8、在mysql-5.7.24/data/3306 目录下创建my.cnf文件;

[client]
port = 3306
socket = /usr/local/mysql-5.7.24/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
socket = /usr/local/mysql-5.7.24/data/3306/mysql.sock
datadir = /usr/local/mysql-5.7.24/data/3306
log-error = /usr/local/mysql-5.7.24/data/3306/error.log
pid-file = /usr/local/mysql-5.7.24/data/3306/mysql.pid
character-set-server=utf8
lower_case_table_names=1
autocommit = 1

至此MySQL安装完成;

四、启动MySQL服务

在mysql-5.7.24/bin目录下执行命令:

./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3306/my.cnf &

(其中 & 符号表示后台启动)

五、修改密码

1、登录进入mysql,在mysql-5.7.18/bin目录下执行命令:

./mysql -uroot -p -P3306 -h127.0.0.1

2、修改mysql的密码,执行:

alter user 'root'@'localhost' identified by '123456';

(其中123456是我们设置的密码)

六、远程访问

1、授权远程访问,执行命令:(这样远程客户端才能访问)

grant all privileges on *.* to root@'%' identified by '123456';

其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;

root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.10.130

2、执行以下如下命令刷新权限:

flush privileges;

3、如果上面授权远程访问执行之后依然远程连接不上mysql,可能是Linux上防火墙拦截了,可以将防火墙先关闭;

关闭防火墙命令:

systemctl stop firewalld (该命令是临时关闭防火墙,重启centos后失效)

systemctl disable firewalld (把防火墙置为不可用)

在实际公司里面不要这么做,我们自己测试为了方便可以直接关闭;

防火墙开放端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载防火墙配置:firewall-cmd --reload
重启防火墙:systemctl restart firewalld

 

命令含义:

--zone #作用域:查看当前的区域:firewall-cmd --get-default-zone

--add-port=80/tcp  #添加端口,格式为:端口/通讯协议

--permanent   #永久生效,没有此参数重启后失效

取消端口开放:

firewall-cmd --permanent --zone=public --remove-port=3306/tcp

查询端口号8080 是否开启:

firewall-cmd --query-port=8080/tcp

查询有哪些端口是开启的:

firewall-cmd --list-port

关闭MySQL服务

在mysql-5.7.24/bin目录下执行:

./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

centos7下安装mysql的教程_【MySQL】