扩展阅读:
How to Install MySQL on CentOS 7
云服务器 ECS > 用户指南 > 安全组 > 添加安全组规则
MySQL安全配置向导mysql_secure_installation详解
centos7 mysql数据库安装和配置
CentOS7 服务器安装 MySQL
😯 本文档是基于非 root 用户的,需要 sudo 前缀以提升权限,如果是 root 用户,则可忽略该前缀。
使用阿里云ECS,需要配置安全组规则,详见文档具体章节。
开始之前
检查你的主机状态:
1 | hostname // 短主机名 |
更新系统的 yum
1 | sudo yum update |
安装 wget
,用以完成 MySQL
安装
1 | yum install wget |
Yum (全称为:Yellow dog Updater, Modified) 由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM 包管理的字符前端软件包管理器。能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用。
GNU Wget是一个在网络上进行下载的简单而强大的自由软件,其本身也是GNU计划的一部分。它的名字是“World Wide Web”和“Get”的结合,同时也隐含了软件的主要功能。目前它支持通过HTTP、HTTPS,以及FTP这三个最常见的TCP/IP协议协议下载。
安装 MySQL
下载和安装仓库,并且使用yum更新它
1 | wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm |
安装 MySQL
服务,遇到校验时,如果没有错误或匹配错误请选择 y
1 | sudo yum install mysql-server // 安装服务 |
MySQL
默认绑定 localhost (127.0.0.1)
,了解使用 ssh
连接到数据库的信息。
⚠️
MySQL
不建议不设限制地通过公共IP连接,你可以修改配置文件/etc/my.cnf
以更改监听地址,如果决定将MySQL绑定到公共IP,则应该实现只允许特定IP地址的连接的防火墙规则。
安全配置向导(Harden MySQL Server)
运行 mysql_secure_installation
设置默认的 MySQL
安全问题
1 | sudo mysql_secure_installation |
⚠️ 第一次配置时,没有给
root
用户设置密码,直接回车可以设置初始密码。
具体的设置规则:
- 为
root
用户设置密码 - 删除匿名账号
- 取消
root
用户远程登录 - 删除
test
库和对test
库的访问权限 - 刷新授权表使修改生效
可以参考:MySQL安全配置向导mysql_secure_installation详解
使用MySQL
Root 用户登录
root
登录MySQL
1 | mysql -u root -p |
- 生成
MySQL
命令提示列表\h
创建一个新的 MySQL 用户 和 仓库
1 | // testdb 为数据库名 |
以上命令可以缩短为:
1 | create database testdb; |
完成后退出 MySQL
:
1 | exit |
创建一个简单表
使用之前创建的 testuser
用户登录:
1 | mysql -u testuser -p |
创建简单的表1
2
3use testdb;
create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);enter code here
重设 ROOT 密码
root
用户登录
1 | mysql -u root -p |
切换到mysql ,重置密码,并且刷新
1 | use mysql; |
重启 MySQL
:
1 | sudo systemctl start mysqld |
远程连接
远程连接设置
把在所有数据库的所有表的所有权限赋值给位于所有 IP
地址的 root
用户。
1 | grant all privileges on *.* to root@'%'identified by 'password'; |
如果是新用户而不是root,则要先新建用户
1 | create user 'username'@'%' identified by 'password'; |
此时就可以进行远程连接了。
⚠️ 阿里云添加安全组规则
云服务器 ECS > 用户指南 > 安全组 > 添加安全组规则
常用端口选择 MySQL 3306
授权对象为 0.0.0.0/0