容器化部署
# 下载想要的镜像版本。这里是mysql:5.7
docker pull mysql:5.7
# 启动容器
docker run -d
--name mysql
-p 3306:3306
-e MYSQL_ROOT_PASSWORD=123456
-e MYSQL_DATABASE=yw2021-mock
-v /usr/local/docker/mysql/conf:/etc/mysql
-v /usr/local/docker/mysql/logs:/var/log/mysql
-v /usr/local/docker/mysql/data:/var/lib/mysql
mysql:5.7
# 备份docker中mysql数据库的数据
$ docker exec 容器名称 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql
# 导入docker中mysql数据库数据
$ docker exec -i 容器名称 sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /some/path/on/your/host/all-databases.sql
在线安装
1.下载yum repo配置文件
[root@vps44 ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
2.repo的安装
[root@vps44 ~]# rpm -ivh mysql57-community-release-el7-9.noarch.rpm
3.使用yum命令安装
[root@vps44 ~]# yum install mysql-server -y
4.启动Mysql
启动服务[root@vps44 ~]# systemctl start mysqld
# 设置开机启动
[root@vps44 ~]# systemctl enable mysqld
# 查看mysql状态
[root@vps44 ~]# systemctl status mysqld
上面已经完成了Mysql的在线安装,但是生产中的服务器往往没有外网环境,此时我们必须通过离线的方式进行安装。
离线安装
首先清除CentOS7系统中默认的数据库mariadb,否则不能安装mysql
rpm -qa |grep mariadb |xargs yum remove -y
下载mysql相关rpm包
在https://dev.mysql.com/downloads/mysql/选择为Red Hat Enterprise Linux 7/Oracle Linux 7,把os的版本选择为all,直接下载mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar,所有的rpm包都在里面;
解压文件
mkdir -p /usr/local/mysql
mv mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar /usr/local/mysql
tar axvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
切换到解压的文件路径下比如在/usr/local/mysql,执行安装命令
# 可以使用rpm -ivh 依次安装
rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
# 或使用如下命令自动安装
rpm -Uvh *.rpm --nodeps --force
修改配置信息
# 非必须,可以采用默认配置
vi /etc/my.cnf
# 修改默认的数据存储地址
#datadir=/var/lib/mysql 默认地址
datadir=/data/mysql # 自定义地址
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
初始化数据库和相关配置
mysqld --initialize
# 注意存储数据的路径地址需要和配置文件一致,否则数据库服务启动失败
chown mysql:mysql /data/mysql -R
# 启动服务
systemctl start mysqld.service
# 设置开机自启动
systemctl enable mysqld
数据库初始化后会生成一个随机密码。通过随机密码登录后修改
获取临时密码
# 方式一
cat /var/log/mysqld.log | grep password
# 方式二
[root@vps44 ~]# grep 'temporary password' /var/log/mysqld.log
2021-03-12T02:07:14.346563Z 1 [Note] A temporary password is generated for root@localhost: d1zeuGcd8l_N
[root@vps44 ~]#
# 如果没有临时密码则,删除原来安装过的mysql残留的数据
rm -rf /var/lib/mysql
# 然后再启动mysql,再次执行上面获取临时密码的命令
systemctl start mysqld
登录
[root@vps44 ~]# mysql -u root -p
Enter password:
image.png
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yw2021$%Mysql^';
image.png
开放访问配置
# 连接服务器:
mysql -u root -p
# 看当前所有数据库:
show databases;
# 进入mysql数据库:
use mysql;
# 查看mysql数据库中所有的表:
show tables;
# 查看user表中的数据:
select Host, User from user;
# 修改user表中的Host:
update user set Host='%' where User='root';
# 说明: % 代表任意的客户端,可替换成具体IP地址。
# 最后刷新一下:
flush privileges;
image.png
网友评论