🍈作者:王甜甜(dabing)
# 在服务器安装 mysql8
参考:炎总的用户中心部署笔记 第四步有一个安装 mysql 的笔记
# 一、mysql 安装
- 直接使用 yum 软件包管理器进行安装:
yum install mysql | |
yum install mysql-server | |
yum install mysql-devel |
遇到 Is this ok [y/d/N]:
键入 y 回车。
会发现 mysql 和 mysql-devel 都成功了,但是 mysql-server 没有成功:
是由于 Centos7 版本的数据库不再默认安装 mysql 了,而是改成了 mariadb。CentOS 7 为什么放弃了 MySQL,而改使用 MariaDB? - 知乎
这个上面参考的文章炎总的用户中心部署笔记也有说明,又两种方法,一就是安装 mariadb,二就是去官网下来 mysql 源。我也没接触过 mariadb 所以我也暂时先选择 mysql
- 下载并安装 mysql-server:
官网地址:MySQL :: Download MySQL Yum Repository
可以在官网上找到对应的版本,我这个是 Centos7 的 MySQL8 版本。
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm #下载 | |
rpm -ivh mysql80-community-release-el7-7.noarch.rpm #安装源 | |
yum install mysql-community-server #安装 mysql |
安装成功~
知识点补充:
linux 中的 rpm -ivhrpm 命令是什么 - 开发技术 - 亿速云 (yisu.com)
centos 如何安装 rpm 包 - CentOS-PHP 中文网
# 二、启动 mysql 服务
- 启动
systemctl start mysqld |
- 查看启动状态
systemctl status mysqld |
- 开启开机自启动
systemctl enable mysqld |
- 其他 mysql 命令
systemctl disable mysqld #停止 mysq1 服务开机自启动 | |
systemctl status mysqld #查看 mysql 服务当前状态 | |
systemctl restart mysqld #重启 mysql 服务 | |
systemctl stop mysqld #停止 mysql 服务 |
- 取 root 账户的初始密码
在 /var/log/mysqld.log
文件下有 root 的初始密码
- 登录修改密码:🔗修改 mysql 密码版本不同
mysql -u root -p #回车之后会让你输入密码,输入刚刚的初始密码 | |
set password for 'root'@'localhost'=password('你的root密码'); #mysql8 之前的版本 | |
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; #mysql8 的版本 |
-
创建用户并授权
你可以创建一个数据库,然后创建一个用户,把这个数据库的权限授予这个用户。
但是我不创建数据库了,我直接全部授权,之后就不用 root 登录了,用我这个新创建的用户进行登录。
#mysql8.0 以上版本命令: | |
mysql> create database database_name; #创建数据库 | |
mysql> create user 'user_name'@'%' identified by 'user_password'; #创建用户 | |
mysql> grant all privileges on database_name.* to 'user_name'@'%' with grant option; #授权特定数据库给特定用户 | |
mysql> grant all privileges on *.* to 'user_name'@'%' with grant option; #授权所有权限给用户 | |
mysql> FLUSH PRIVILEGES; #刷新权限使操作生效 | |
# mysql8.0 以下版本: | |
mysql> create user 'user_name'@'%' identified by 'password' with grant option; | |
或者 | |
mysql> create user 'user_name'@'%'identified with mysql_native_password by 'password'; |
- 远程连接设置
把在所有数据库的所有表的所有权限赋值给位于所有 IP 地址的(你刚新创建的用户):这个其实前面就设置过了,就是这句。
#授权所有权限给用户 | |
grant all privileges on *.* to 'user_name'@'%' with grant option; |
这时候可以尝试在 windows 本机的客户端连接服务器的数据库试试,是会连接失败的,因为服务器的防火墙没开放 3306 端口呢。
我用的这个小宝宝:
# 三、服务器防火墙开放 3306 端口
我的是腾讯云的服务器,登录腾讯云,进入服务器,我的是轻量级服务器,可能跟云服务器有点区别。
按以下设置即可,我就设置仅限制我自己 ip 可以登录。公司一个 IP,在家一个 IP,就不怕别人登录我的了。(怎么查自己的公网 IP,直接百度搜: IP地址查询
)
可以再次尝试远程登录,成功~~~
原文章还有一步修改配置文件的编码格式,我这里先不修改,感兴趣的可以看看