环境要求
- CentOS 7
- 较好网络
- yum已配置完成
安装mysql源
# mysql源下载
#当然你也可以选择其他镜像站的资源
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# 安装 mysql 源
yum localinstall mysql57-community-release-el7-11.noarch.rpm
需要下载相关的资源文件,需要一定的时间,慢慢等待···
安装完成后,查看mysql源是否安装完成
yum repolist enabled | grep "mysql.*-community.*"
安装mysql
通过yum install 命令进行安装
yum install -y mysql-community-server
在这里解释下yum安装时 yum -y install 和 yum install 之间的区别:
如果使用yum install xxxx,会找到安装包之后,询问你Is this OK[y/d/N],需要你手动进行选择。但是如果加上参数-y,就会自动选择y,不需要你再手动选择!
启动mysql
在CentOS7 下,将使用新的启动服务命令 systemctl start XXX
# 启动mysqld服务
systemctl start mysqld
# 启动后查看mysql状态
systemctl status mysqld
出现绿色的 “active (runing)” 就表明mysql 服务已经成功启动!
mysql开机启动设置
systemctl enable mysqld
# 重新加载所有修改后的配置文件
systemctl daemon-reload
修改mysql密码
mysql 安装完成之后,会生成一个初始密码,保存在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。
grep 'temporary password' /var/log/mysqld.log
用拿到的初始密码登录进去后,需要修改下这个密码,不然无法选择mysql数据库进行下一步的操作。
mysql -u用户名 -p 按回车(enter),输入密码后回车(enter)
# mysql 登录
mysql -uroot -p
# 选择mysql数据库
mysql> use mysql;
由于没有进行密码修改,所以无法选择mysql数据。
在第一次通过初始密码登录后,使用以下命令修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123ABCpassword!!';
#或者
set password for 'root'@'localhost'=password('123ABCpassword!!');
第一次修改初始密码后,再次需要修改密码:
- (老版本5.7以下)修改密码:UPDATE user SET Password = password (‘xxxxxx’) WHERE User = ‘root’ ;
- 特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了而是将加密后的用户密码存储于authentication_string字段
# 登录
mysql -uroot -p
#选择mysql
use mysql;
#修改密码
update user set authentication_string=PASSWORD('xxxxxxx') where user='root';
- 注意
mysql 5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。
添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须添加一个允许远程连接的帐户。或者修改 root 为允许远程连接(强烈不推荐)
# 添加远程账号
GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' IDENTIFIED BY 'xxxx密码xxxx' WITH GRANT OPTION;
编码配置
mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf 配置文件,在相关节点(没有则自行添加)下添加编码配置
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
退出mysql,重启mysql后,查看修改后的配置
#退出mysql
mysql>exit;
#重启
systemctl restart mysqld
#登录进去后进行配置查看
mysql -uroot -p
# 查看编码
show variables like 'character%';
# 查看时区
show variables like '%time_zone%'
time_zone 表明当前mysql使用的时间是系统时间。