vlambda博客
学习文章列表

手把手教程 | CenOS7下MySql安装部署教程,看这篇文章就足够了!

一、前言

1、本教程主要内容

  • MySQL 5.7安装(yum)
  • MySQL 5.7 ROOT账号密码修改
  • MySQL 5.7基础使用与配置
  • MySQL shell管理常用语法示例(用户、权限等)
  • MySQL字符编码配置

2、本教程环境信息与适用范围

  • 环境信息
软件 版本
CentOS 7.4 Release
MySQL 5.7
  • 适用范围
软件 版本
CentOS CentOS 6 & CentOS 7
MySQL 5.7.xx

二、MySQL安装

1、添加包

#CentOS 7
cd /home/downloads
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

#CentOS 6
cd /home/downloads
wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
sudo rpm -ivh mysql57-community-release-el6-9.noarch.rpm

2、安装

#安装
yum install -y  mysql mysql-server

#启动
systemctl start mysqld

#进入mysql-shell
mysql -u root -p

3、开放端口

#CentOS7
#开放端口
firewall-cmd --add-port=3306/tcp --permanent

#重新加载防火墙设置
firewall-cmd --reload

#CentOS6
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

iptables save

三、ROOT密码修改

#1.停用服务:
systemctl stop mysqld

#2. 设置mysql服务配置
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

#3. 开启服务
systemctl start mysqld

#4. 登录(root)
mysql -u root

#5. 更新密码
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword')
    -> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit

#6. 停用服务
systemctl stop mysqld

#7. 取消之前的mysql服务设置
systemctl unset-environment MYSQLD_OPTS

#8. 启动服务
systemctl start mysqld

#9. 登录&修改密码
mysql -u root -p
mysql>SET PASSWORD = PASSWORD('New Password');

四 、用户&权限

1、创建用户&数据库

#新建用户
CREATE USER 'test'@'localhost' IDENTIFIED BY 'Test@123456';
CREATE USER 'crrc'@'localhost' IDENTIFIED BY 'Crrc@2022';
#新建数据库
CREATE DATABASE crrcdb;

#赋予指定账户指定数据库远程访问权限
GRANT ALL PRIVILEGES ON crrcdb.* TO 'crrc'@'%' identified by 'Crrc@2022';

#赋予指定账户对所有数据库远程访问权限 
GRANT ALL PRIVILEGES ON *.* TO 'mvasoft'@'%'  identified by 'Mvasoft@123456';

#赋予指定账户对所有数据库本地访问权限
GRANT ALL PRIVILEGES ON *.* TO 'mvasoft'@'localhost';

#刷新权限
FLUSH PRIVILEGES;

2、权限示例(mysql-shell)

#1、查看权限
SHOW GRANTS FOR 'root'@'%';

#2、赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

#3、收回权限
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%';

#4、刷新权限
FLUSH PRIVILEGES;

#5、删除用户
DROP USER 'test'@'localhost';

五、修改字符编码

1、 查找配置文件位置

[root@centos7 download]# whereis my.cnf
my: /etc/my.cnf

2、 修改配置文件

#修改配置文件
vi /etc/my.cnf

#修改1:增加client配置(文件开头)
[client]
default-character-set=utf8mb4

#修改2:增加mysqld配置(文件结尾)
#charset
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

#修改3:设置表名大小写不敏感
# 在[mysqld]下面增加一行配置
lower_case_table_names=1

#修改4:允许日期为0000-00-00 00:00:00
# 在[mysqld]下面增加一行配置
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

3、 重启mysql服务

#重启后配置即可生效
systemctl restart mysqld

六、备注

相关阅读

  • MySQL中的utf8

http://www.infoq.com/cn/articles/in-mysql-never-use-utf8-use-utf8

  • MySQL远程访问与bind-address问题

https://serverfault.com/questions/139323/how-to-bind-mysql-server-to-more-than-one-ip-address

点赞、在看、收藏三连击一下,然后再分享给需要的小伙伴!