今天下班还算早,开启电脑看到自己双十二购买的云服务器居然还没有安装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