CentOS7系统中mysql8安装配置

导语:mysql是世界上最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司所有。今天我将记录一下如何在Linux centos7系统上安装和配置MySQL。

# 目录

  • 环境准备
  • 安装包
  • 基本设置
  • 语法操作

# 环境准备

# 安装包

  • 第一步

进入下载文件夹,就是你要存放安装包的文件夹。

cd /home/downloads
1
  • 第二步

下载安装包,并且用rpm添加MySQL程序包。

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
1
2
  • 第三步

安装包。

yum install -y  mysql-community-server
1

# 基本设置

  • 启动并开机自启动MySQL程序
systemctl start mysqld
systemctl enable mysqld
1
2
  • 查看版本信息
mysql -V
1
  • 修改密码
//查看临时密码
grep "A temporary password" /var/log/mysqld.log

//进入mysql
mysql -u root -p

//修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MYsql123.';
1
2
3
4
5
6
7
8
  • 添加防火墙端口

MySQL默认的端口是3306,所有在防火墙中添加一个永久的端口。

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
1
2

# 语法操作

MySQL的一些语法操作基本上是增删查改不离手,分为数据库操作、数据表操作、用户操作、权限管理等,这次介绍一些查用的操作命令。

想要获取更多内容,请访问MySQL的官方文档。

  • 数据库操作
//添加数据库
mysql> CREATE DATABASE mydb;
//查看数据库
mysql> SHOW DATABASES;
//使用数据库
mysql> USE <database name>;
1
2
3
4
5
6
  • 数据表操作
//查看数据表
mysql> SHOW TABLES;
//创建数据表
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
       species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
1
2
3
4
5
  • 用户操作
//新建本地用户
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';

//新建远程用户
mysql> CREATE USER 'test'@'%' IDENTIFIED BY '123456';

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

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

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

//刷新权限
mysql> FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  • 权限管理
//查看权限
SHOW GRANTS FOR 'test'@'%';

//赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';

//收回权限
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';

//刷新权限
FLUSH PRIVILEGES;

//删除用户
DROP USER 'test'@'localhost';
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 常见问题

  • 打开phpadmin无法登录

因为MySQL8使用了更高级的方法,phpmyadmin不支持,所以需要使用以下语法来重置登录密码。

CREATE USER '<你的用户名>' IDENTIFIED WITH 'mysql_native_password' BY '<你的密码>';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
FLUSH PRIVILEGES;
1
2
3
  • 忘记root密码

有时候我们容易忘记mysql的用户名密码,可以使用以下方法修改密码。

# 进入配置文件忽略密码登录
vi /etc/my.cnf
# 添加内容
skip-grant-table
# 重启mysql
systemctl restart mysqld
# 免密登录
mysql -u root -p
# 选择数据库
use mysql
# 更新为空
update user set authentication_string='' where user='root';
# 退出
\quit
# 或者
\q
# 删除skip-grant-table保存文件
vi /etc/my.cnf
# 重启mysql
systemctl restart mysqld
# 免密登录
mysql -u root -p
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456@1111....'; # 提示:有时候密码弱也会报错,退出重新登录就可以进去了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  • 内存占用过大

编辑配置文件my.cnf

innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀
query_cache_size=100M ->16M 查询缓存
tmp_table_size=102M ->64M 临时表大小
key_buffer_size=256m ->32M
1
2
3
4

分享至:

  • qq
  • qq空间
  • 微博
  • 豆瓣
  • 贴吧