Ken的杂谈
  • Ken的杂谈 (current)
  • 关于
  • 杂谈
    Java Spring Spring Boot Spring Cloud MyBatis C# .NET Core .NET ASP.NET Core ASP.NET ClassLibrary Mono 数据库 MySQL SQL Server 网络 缓存 Web Linux CentOS Ubuntu macOS Windows openEuler Nginx ServiceStack JS/JQ 正则 工具 IDE Grafana Exceptions CI/CD Solution 微服务 Arch Docker 杂谈
  • 系列
    Java 快速入门系列教程 Spring Boot 入门教程 Spring Boot 2.x 入门教程 Spring Cloud 入门教程 .NET Core 快速入门教程 ASP.NET Core 2.1 入门教程 CentOS 7 快速上手教程 Ubuntu快速上手入门教程 Hyper-V基础教程 Docker入门教程
  • GitHub

CentOS 6/7 下 MySQL 5.7 安装部署与配置

MySQL CentOS 数据库 @ 2017-07-05 21:35:31 · 阅读:(8341)

一、前言

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 DATABASE testdb;

#赋予指定账户指定数据库远程访问权限
GRANT ALL PRIVILEGES ON testdb.* TO 'test'@'%';

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

#赋予指定账户对所有数据库本地访问权限
GRANT ALL PRIVILEGES ON *.* TO 'test'@'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、 重启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


Ken的杂谈

本文由 ken.io 创作,采用CC BY 3.0 CN协议 进行许可。 可自由转载、引用、甚至修改,但需署名作者且注明出处。

MySQL CentOS 数据库

随笔目录


    © Copyright 2012-2025 Ken的杂谈

    豫ICP备10025012号

    ASP.NET Core(6.0) on Linux