环境:Linux-CentOs7
四种方式:
- yum-wget-rpm
- 二进制
- 编译源码
4. docker【推荐】

删除mysql
- 删除软件包

- 删除数据,配置,日志文件

方式一:rpm包(通过yum软件包管理器与wget工具)
包括服务器端与客户端两类。
-
获取rpm软件包链接
网站:https://dev.mysql.com/downloads/repo/yum/
适用linux7:https://dev.mysql.com/get/mysql84-community-release-el7-2.noarch.rpm -
下载软件包文件
yum -y install wget
wget https://dev.mysql.com/get/mysql84-community-release-el7-2.noarch.rpm

-
关闭防火墙与SELinux
systemctl disable firewalld
setenforce 0
systemctl status firewalld
getenforce -
通过yum-config-manager命令工具选择5.7版本(否则默认会是最新版本)
yum-config-manager --disable mysql180-community
yum-config-manager --enable mysql157-community
yum repolist enabled | grep mysql -
配置镜像仓库与版本进行安装
rpm -ivh mysql84-community-release-el7-2.noarch.rpm
yum install -y mysql-community-server

-
启动服务,查看端口
service mysqld status
(或者 systemctl status mysql)
systemctl start mysql
ss -nat | grep 3306


方式二:二进制(经过编译生成软件包)
略

方式三:源码(需要自行编译)
单独下载依赖包,根据不同需求,自由灵活设定参数,手动安装
-
卸载centos原默认数据库:MariaDB
rpm -e --nodeps mariadb-libs
不过可能出现软件包 mariadb-libs 已经被 mysql-community-libs 取代

-
准备依赖包
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel -
wget获取源码,boost依赖包(时间较长)
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25.tar.gz
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz



-
解压,预编译
tar xzf boost_1_59_0.tar.gz
cd mysql-5.7.25.tar.gz
cmake . -
编译,添加环境变量
make -j KaTeX parse error: Undefined control sequence: \n at position 61: …stall echo -e '\̲n̲\nexport PATH=/…PATH\n’ >> /etc/profile && source /etc/[rpfile -
复制可执行文件,授权,开机自启
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
systemctl start mysqld -
在错误日志查看初始随机密码
grep ‘temporary password’ /var/log/mysqld.log
方式四:docker(容器化管理)【推荐】
-
选择版本,拉取镜像:
docker pull mysql:8.0 -
数据持久化:
【目录挂载与数据卷挂载二选一】推荐前者
mkdir -p /mysqldata/mysql/{data,conf,log}
运行容器并挂载目录:
docker run --name mysql -p 3306:3306 \ -v /mysqldata/mysql/data:/var/lib/mysql \ -v /mysqldata/mysql/conf:/etc/mysql \ -v /mysqldata/mysql/log:/var/log/mysql \ -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql:8.0
【如果运行了目录挂载还运行数据卷挂载会出现冲突】

数据卷:
docker volume create mysql_data
docker run -d --name mysql-container \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=yourpassword \ mysql:8.0
-
环境变量配置
MySQL容器支持以下常用环境变量:
MYSQL_ROOT_PASSWORD:root用户密码(必需)
MYSQL_DATABASE:容器启动时创建的数据库
MYSQL_USER,MYSQL_PASSWORD:创建新用户及密码 -
默认情况下MySQL容器只允许本地连接,需要配置远程访问:
进入容器
docker exec -it mysql-container bash
登录MySQL
mysql -u root -p
执行SQL命令允许root用户远程连接(MySQL 8.0)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
GRANT ALL ON *.* TO 'root'@'%';
FLUSH PRIVILEGES; -
检查状态
docker ps -a | grep mysql
docker logs mysql-container -
测试连接
容器内连接
docker exec -it mysql-container mysql -u root -p
宿主机连接,【先进入容器内部】
docker exec -it mysql-container bash
mysql -h 127.0.0.1 -P 3306 -u root -p
1459

被折叠的 条评论
为什么被折叠?



