文章目录
https://www.mysql.com/downloads/
https://dev.mysql.com/downloads/mysql/
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-el7-x86_64.tar.gz
CentOS8安装MySQL8
官方文档 MySQL安装手册
官方文档 MySQL 8.0 参考手册 - 在 Linux 以通用二进制发布文件安装 MySQL
官方文档 MySQL 8.0 参考手册 - 在 Linux 安装 MySQL
官方文档 MySQL 8.0 参考手册 - 在 Linux 安装 MySQL - 使用 Systemd 管理 MySQL
官方文档 MySQL 8.0 参考手册 - 在 Linux 安装 MySQL - 使用 Systemd 管理 MySQL - MySQL 8.0 安全部署向导 - 安装后操作 - 使用 Systemd 启动 MySQL Server
mysql install
CentOS7, x64
1. 添加yum源
mysql官网yum源: https://dev.mysql.com/downloads/repo/yum/
进入官网去选择和是的rpm包,包的作用是添加MySQL yum源,我在这里下载的是 mysql80-community-release-el7-3.noarch.rpm, 连接地址是: https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum localinstall mysql80-community-release-el7-3.noarch.rpm
cd /etc/yum.repos.d
该目录下有如下两个文件
- mysql-community.repo
- mysql-community-source.repo
2. 安装
yum install mysql-community-server
3. 启动
systemctl start mysqld.service
systemctl status mysqld.service
systemctl stop mysqld.service
systemctl restart mysqld.service
4. 修改密码
grep 'temporary password' /var/log/mysqld.log
MySQL 默认创建了 root 用户的密码,这个密码打印在 MySQL 的日志文件/var/log/mysqld.log中,可以通过temporary password关键字来找出这个临时的密码。
mysql -u root -p
新版本的MySQL对密码强度有限制,执行到上一步的时候,会提示密码强度不够,则应更改为更高强度的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'myPassword';
FLUSH PRIVILEGES;
5. 开放远程连接
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
6. 问题
1. caching_sha2_password
Failed to Connect to MySQL at 10.211.55.6:3306 with user root
Authentication plugin ‘caching_sha2_password’ cannot be loaded
通过数据库客户端连接MySQL的时候, 可能会报 caching_sha2_password, 原因是mysql8版本引入了新的鉴权机制, 所使用的数据库客户端不支持, 有两种解决方式
- 切换mysql的鉴权机制为旧版本的, 可以百度查找(但是我在阿里云上操作都失败了)
- 更新数据库客户端到支持该鉴权机制的版本, 如Navicat12.1.xx版本才支持该机制
7. 目录
/var/lib/mysql mysql数据文件存放路径,可自定义
/etc/my.cnf mysql配置文件路径
/usr/lib64/mysql mysql库文件路径
/usr/bin/mysql* mysql二进制可执行文件路径
/etc/rc.d/init.d/mysqld mysql服务管理脚本地址
/var/log/mysqld.log mysql日志文件路径
Windows, x64
安装MySQL (这是Windows 5.7.x版的)
- 解压MySQL压缩包, [D:\develop\mysql-5.7.18]
将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini
复制下面的配置信息到 my.ini 保存(需要按情况修改basedir和datadir)
#如果没有my-default.ini,可自己新建my.ini
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=D:\develop\mysql-5.7.18
datadir=D:\develop\mysql-5.7.18\data
default-storage-engine=INNODB
\#注:实践得出,上述文件应保存AscII格式,否则会报以下错误
\#error: Found option without preceding group in config file:....
-
添加环境变量:MYSQL_HOME, path添加[%MYSQL_HOME%\bin;]
-
管理员CMD, cd到mysql的bin目录,
执行[mysqld --initialize-insecure],这个命令会生成无密码的root用户。而命令[mysqld --initialize]自动生成带随机密码的root用户
执行[mysqld install]安装MySQL服务
#执行这几步,是因为在MySQL5.7.x中没有data文件夹,需要用这几个命令产生data文件夹
#移除服务命令为:[mysqld remove]
-
启动和停止服务:[net start mysql], [net stop mysql]
-
登录:[mysql -uroot -p]
更新root用户密码:[update mysql.user set authentication_string=PASSWORD(‘root’) where user=‘root’;]
授权root用户远程登录权限:[GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;]
刷新权限:[flush privileges;]
退出登录:[quit]