1,登陆到ECS服务实例上
ssh root@123.56.104.106
2,下载mysql的YUM源:
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
3,安装MySQL
yum install mysql-community-server
安装过程中一直输入"y"就可以了
4,启动mysql服务:systemctl start mysqld
5,设置密码
mysqladmin -u root password 'new-password'
或set password for 'root'@'localhost' = password('123456');
设置完密码之后就可以使用mysql -u root -p 命令来登录mysql数据库了
- 修改的密码过于简单或不符合安全策略时会提示:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。
使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password。
密码强度检查等级默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
6,登录进Mysql(我的刚安装完时没有密码):mysql -uroot或mysql
如果出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
则说明mysql安装完后给root用户生成了一个默认密码,所以你需要使用密码登录。
查看mysql生成的默认密码:
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,如果安装的是RPM包,则默认是在/var/log/mysqld.log中。
查看默认密码:grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p 回车 然后输入默认密码即可登录myql。
7,使用Navicat链接Mysql时,如果报错10038
原因:远程访问 MySQL, 需开放默认端口号 3306.
firewall-cmd --permanent --zone=public --add-port=3306/tcp 提示:FirewallD is not running
1) 通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
2) 通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
3) 如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能
4) 再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功
5)执行firewall-cmd --reload使最新的防火墙设置规则生效
启动与停止mysql服务命令:
systemctl start mysqld #启动mysqld
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重启mysqld
systemctl enable mysqld #设置开机启动
systemctl status mysqld #查看 MySQL Server 状态
如果用户权限和防火墙都开启了,还是报10038
此时还有一种可能,就是阿里云ECS安全组中配置的入站规则中没有添加3306端口
(如何配置请参考另一个文章中关于开放80端口的配置:https://blog.csdn.net/qq_2300688967/article/details/93859300)
使用Navicat链接Mysql时,需要在阿里云上的安全组配置3306端口,使其它网络可以通过这个端口访问Mysql
Mysql常用操作命令:
* 显示所有的数据库
show databases;
* 创建数据库
create database dailyplanner;
* 使用指定的数据库
use dailyplanner;
* 显示数据库表
show tables;
* 显示mysql库user表的结构
desc user;
- 当前有哪些用户
select Host, User, password_expired from user;
- 创建用户,注意,以下是单引号,且要在linux命令行中输入的单引号
create user admin identified by 'Daily_Planner365';
- 给admin用户授予 select, insert, update, delete 权限
grant select, insert, update, delete on dailyplanner.* to 'admin'@'%';
- 也可以通过show grants命令查看权限授予执行的命令
show grants for admin
- 设置用户 root 可以在任意 IP 下被访问:
grant all privileges on . to admin@“%” identified by "Daily_Planner365";
- 授权所有数据库的所有权限
GRANT ALL PRIVILEGES ON *.* to 'admin'@'%' identified by 'Daily_Planner365' with grant option;
- 使授权立刻生效
flush privileges;
- 删除用户
Delete FROM user Where User='admin' and Host='%';
常见错误
1, ERROR 1396 (HY000): Operation CREATE USER failed for 'admin'@'%'
解决:drop user 'admin’;
如果不想自己搭建MySql, 可购买服务商的数据库产品(附 阿里云上购买mysql链接)