文章目录
- 安装MySQL的几种方式
- 一、 使用docker安装MySQL
- 1.1 卸载旧版本(如果存在docker,需先卸载旧版本)
- 1.2 安装Docker
- 使用存储库安装(推荐使用)
- 1.3 安装mysql5.7.35(普通用户下)
- *** 安装MySQL:5.7.35镜像
- *** 进入容器中查看配置文件以及数据文件在哪里?
- *** 将镜像运行并挂载到主机中
- 1.4 给docker中的mysql添加用户并赋予表权限
- docker运行报错问题汇总
- 二、 通过Yum源快速安装Mysql5.7(稳定版本)并配置
- 2.1 下载官方的rpm源,并配置到yum中
- 2.2 选择对应的mysql版本(默认为上面配置的rpm版本)
- ***使用此命令查看 MySQL Yum 存储库中的所有子存储库,并查看哪些是启用或禁用的
- ***修改安装的版本
- 2.2.1 使用yum-config-manager命令进行修改
- 2.2.2 手动编辑/etc/yum.repos.d/mysql-community.repo 文件进行修改
- ***查看当前enable的版本
- 2.3 安装对应版本的MySQL
- ***如果安装失败,可以更导入第三方gpgkey
- 2.4 启动MySQL服务器
- 2.5 配置MySQL服务器
- 1. 查看MySQL的临时root密码
- 2. 重置root(两种方式)
- 3. 通过root用户进行mysql并创建用户和赋予root权限
- 2.6 到此为止,MySQL就可以进行远程访问了
安装MySQL的几种方式
当前安装操作均在
root
权限用户下进行,普通用户请自行在最前面添加sudo
前缀
一、 使用docker安装MySQL
1.1 卸载旧版本(如果存在docker,需先卸载旧版本)
# 如果存在Docker,卸载旧版本的docker
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
1.2 安装Docker
详情看官方文档:Docker官方文档
使用存储库安装(推荐使用)
在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。
- 设置存储库
# 安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库。
yum install -y yum-utils
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
- 安装Docker引擎
安装最新版本的Docker Engine和containerd
yum install -y docker-ce docker-ce-cli containerd.io
# 如果提示接受 GPG 密钥,请验证指纹是否匹配060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果匹配 ,请接受。
1.3 安装mysql5.7.35(普通用户下)
*** 安装MySQL:5.7.35镜像
# 查看docker运行状态
systemctl status docker
# 启动docker服务
systemctl start docker# 在Docker中想要安装某个程序只需要进行pull操作即可
# 安装mysql:5.7.35
docker pull mysql:5.7.35
# 完成之后使用sudo docker images查看是否下载mysql镜像成功
docker images# 创建所需要的文件夹
#sudo mkdir -p ./mysql/conf
#sudo touch ./mysql/conf/my.cnf
#sudo mkdir -p ./mysql/data
#sudo mkdir -p ./mysql/logs
*** 进入容器中查看配置文件以及数据文件在哪里?
# 简单启动一个容器
docker run -p 3306:3306 -d mysql:5.7.35
# 使用sudo docke exec -it 容器id /bin/bash
docker exec -it 38a /bin/bash # 进入容器id为38a开头的容器# 检测其中的配置文件、日志文件及数据文件分别存放在哪里?
- 配置文件 /etc/mysql/my.cnf
- 日志文件 /var/log/mysql
- 数据文件 /var/lib/mysql# 退出容器
exit
*** 将镜像运行并挂载到主机中
# 删除错误配置的容器
docker stop 容器id
docker rm -f 容器id
# 删除镜像
docker rmi 镜像id# 接下来进行运行和挂载mysql:5.7.35数据库
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs
-e MYSQL_ROOT_PASSWORD=root初始化 root 用户的密码。 # 只有第一次运行需要# 运行mysql:5.7.35镜像并挂载到主机中
docker run -p 3306:3306 --name subwayMysql \
-v $PWD/mysql/conf:/etc/mysql \
-v $PWD/mysql/logs:/var/log/mysql/ \
-v $PWD/mysql/data:/var/lib/mysql/ \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.35 # 安装镜像并设置# 使用sudo docker ps查看镜像是否在运行
docker ps # 查看镜像是否在运行# 再使用Navicat进行连接测试
1.4 给docker中的mysql添加用户并赋予表权限
# 使用Navicat或者进入容器内使用mysql -u root -p 进行登陆
user mysql;
select host,user from user;# 创建一个新的用户
create user 'hcz'@'%' identified by 'ZtLZ3qcGjYW70yyJ';
select host,user from user;# 为新用户授权
# 允许访问所有数据库下的所有表
grant all privileges on *.* to 'hcz'@'%' identified by 'ZtLZ3qcGjYW70yyJ' ;
FLUSH PRIVILEGES;# 到这一步就可以通过新创的用户进行root用户权限了# 删除用户
DROP USER username@localhost;# 修改后需要刷新权限
FLUSH PRIVILEGES;
docker运行报错问题汇总
- 出现 Error response from daemon问题
在/etc/docker/下观察是否存在daemon.json,不存在则创建一个输入以下内容。
{
“registry-mirrors”: ["https://docker.mirrors.ustc.edu.cn"]
}
二、 通过Yum源快速安装Mysql5.7(稳定版本)并配置
官方详细文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
2.1 下载官方的rpm源,并配置到yum中
- 通过如下命令查看当前Linux系统是el几
# 通过如下命令查看当前Linux系统是el几
uname -a
下载源:https://dev.mysql.com/downloads/repo/yum/
命令行:sudo rpm -Uvh http://dev.mysql.com/get/platform-and-version-specific-package-name.rpm
platform-and-version-specific-package-name===包名
例如:sudo rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el7-4.noarch.rpm
2.2 选择对应的mysql版本(默认为上面配置的rpm版本)
***使用此命令查看 MySQL Yum 存储库中的所有子存储库,并查看哪些是启用或禁用的
yum repolist all | grep mysql
enable代表当前安装的版本
***修改安装的版本
2.2.1 使用yum-config-manager命令进行修改
# 默认是找不到yum-config-manager命令的,需要进行安装
yum -y install yum-utils# 再执行如下命令即可
yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql80-community
2.2.2 手动编辑/etc/yum.repos.d/mysql-community.repo 文件进行修改
编辑/etc/yum.repos.d/mysql-community.repo 文件
***查看当前enable的版本
yum repolist enabled | grep mysql
2.3 安装对应版本的MySQL
yum install -y mysql-community-server
***如果安装失败,可以更导入第三方gpgkey
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022yum install -y mysql-community-server
重新运行安装服务命令,即可安装成功
2.4 启动MySQL服务器
# 启动MySQL服务器
systemctl start mysqld# 开机自启动MySQL服务器
systemctl enable mysqld# 查看MySQL服务器的状态
systemctl status mysqld
2.5 配置MySQL服务器
1. 查看MySQL的临时root密码
sudo grep 'temporary password' /var/log/mysqld.log
MySQL 的 validate_password 插件是默认安装的。
这将要求密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符。
2. 重置root(两种方式)
- 通过
mysqladmin
进行更改root密码
# 修改密码
mysqladmin -u root -p password 'newpassword'# 会出现修改密码, 输入刚刚生成的临时密码# 可能会提示你修改的密码不安全,我们可以通过下面的网站进行生成
# 这将要求密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符,并且密码总长度至少为 8 个字符。
# 如果是测试使用的可以用我下面这个密码
mysqladmin -u root -p password "123456Aa!"
- 通过命令
mysql_secure_installation
进行重置root以及其他权限(推荐使用)
1、先改密码:
2、是否修改密码?选择N
3、是否移除匿名用户?选择y
4、是否关闭root用户远程连接数据库?选择y
5、是否删除test库以及对test库的访问权限?选择y
6、是否重新加载授权表?选择y
更多详细,看官方文档
3. 通过root用户进行mysql并创建用户和赋予root权限
由于默认的root用户一般不会用来进行远程连接,所以一般会生成一个用户去进行远程连接。
# 通过命令进入mysql
mysql -u root -p
`输入设置的密码`
# 查看用户信息
select host,user,plugin,authentication_string from mysql.user;
# 创建用户(1、只允许本地登陆访问,2、允许远程登陆访问)
1. 只允许本地登陆访问
create user 'test'@'localhost' identified by '987654Aa!';
2. 运行远程登陆访问
create user 'test'@'%' identified by '987654Aa!';
# 最后都需要刷新权限
flush privileges;# 删除用户
DROP USER 'username'@'host';# 创建用户并赋予权限(8.0版本需要分开执行)
# mysql5.7、5.6等旧版本创建用户并赋予权限
grant ALL PRIVILEGES ON *.* to root@"%" identified by "xxxx" WITH GRANT OPTION;# mysql8.0创建用户并赋予权限步骤如下:
# 为新用户添加权限(1、本地,2、外网)
1. 本地
grant all privileges on 数据库名.表名 to '用户名'@'localhost';
flush privileges;
2. 外网(全部授权)
grant ALL PRIVILEGES ON *.* to root@"%";
# 刷新权限
flush privileges;
2.6 到此为止,MySQL就可以进行远程访问了
切记:如果连接不成功,请检查防火墙的3306端口是否开启,没有开始,请开启防火墙的3306端口。
或者直接关闭防火墙,使端口全部开放。
不会配置的,可以查看Redis安装中开放6379端口部分内容。Redis_6.2.12下载及安装(CentOS7)