安装 MySQL
下载 MySQL 源安装包,可以下载到本地,再上传到服务器
也可以直接使用 wget 直接下载
wget http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
安装 mysql 源
yum -y install mysql57-community-release-el7-11.noarch.rpm
安装 mysql
yum -y install mysql-community-server
设置 MySQL
MySQL 启动,停止,重启,查看状态
systemctl start mysqld.service 启动 mysql
systemctl stop mysqld.service 停止 mysql
systemctl restart mysqld.service 重启 mysql
systemctl status mysqld.service 查看 mysql 当前状态
默认配置文件路径
配置文件:/etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
MySQL 重置密码
此时 MySQL 已经正常运行,进入 MySQL 需要 root 用户的密码,使用下面指令从 log 中拿到默认密码
grep "password" /var/log/mysqld.log
使用如下命令进入数据库:
mysql -uroot -p

输入初始密码,此时不能做任何事情,因为 MySQL 默认必须修改密码后才能操作数据库,登录 MySQL,重置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
MySQL 安装了密码安全检查插件,默认密码检查测会要求密码包含:大小写字母,数字,特殊字符,并且长度不能小于8位,否则会提示出错
密码策略(执行下面这条指令,必须先修改密码)
show variables like '%password%';
validate_password_policy:密码策略,默认为MEDIUM策略
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个
策略
0 | LOW 检查长度
1 | MEDIUM 检查长度,数字,大小写字母,和特殊字符
2 | STRONG 检查长度,数字,大小写字母,和特殊字符,dictionary file
MySQL 配置默认为 utf8 编码
修改 /etc/my.cnf,在 [mysqld] 下添加如下配置,然后重启 mysql:
character_set_server=utf8
init_connect='SET NAMES utf8'
MySQL 远程登录
默认只允许 root 账户在本地登录,如果要在其它机器上连接 mysql,必须修改 mysql 允许远程连接,或者添加一个远程连接子账户
select host, user from user;
允许远程计算机连接,修改为%表示允许任意的host访问,如果只允许一个 IP 访问,可以修改为相应的 IP。比如修改为 192.168.3.45,表示只允许这个IP远程访问mysql,修改过后重启 MySQL
update user set host = '%' where user = 'root';
数据库操作
基本操作
使用 mysql -uroot -p 登录数据库,查看所有数据库
show databases;
使用某一个数据库
use dbname;
创建数据库
create database chatdb;
删除数据库
drop database chatdb;
MySQL GUI
对于数据库的操作,在命令行操作不够友好,可以使用 GUI 工具,MySQL 的图形管理工具有很多,在此使用 MySQL Workbench
在本地可以登录成功,远程登录可能失败,登录失败常见原因如下:
IP 地址,用户名和密码不匹配
防火墙限制端口号(关闭防火墙,或者允许端口号公网访问)
数据库限制 IP 访问(参考 MySQL 远程登录)
在上面信息都匹配的情况下,我仍然不能访问,服务器使用的是阿里云,系统 CentOS,解决方法?
登录阿里云控制台,找到安全组策略,添加 3306 端口