一、docker方式部署
1、mysql安装:
docker search mysql
docker pull mysql
2、mysql运行
docker run -p 3307:3306 --name vas_mysql \
-v /docker/mysql/conf:/etc/mysql \
-v /docker/mysql/logs:/var/log/mysql \
-v /docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=vas.2021 \
-d mysql
3、注意事项
mysql5.7.5以上版本需修改GROUP_BY参数:
select @@global.sql_mode; ## 查询参数信息
SET @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,,NO_ENGINE_SUBSTITUTION'; ## 全局设置
SET sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; ##对于已存在数据设置
commit; ## 事务提交才会生效
二、磁盘方式方式部署(用例为CentOS9系统)
- 安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
rpm -qa|grep mariadb
rpm -e ******** --nodeps
选择mysql官网地址下载编译包 MySQL官网版本选择
- 复制RPM下载链接地址,去linux中wget(比正常浏览器下载速度快很多)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.28-1.el8.x86_64.rpm-bundle.tar
- 解压安装包
tar -xvf mysql-8.0.28-1.el8.x86_64.rpm-bundle.tar
## 安装 使用rpm -ivh 命令安装
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm ##(依赖于common)
rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm ##(依赖于libs)
rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm ##(依赖于client、common)
- 创建mysql资源文件夹
mkdir mysql {data, log}
- 安装完毕初始化数据库
mysqld --initialize ## --console --lower-case-table-names=1(新版只能初始化时候忽略大小写,写到配置文件会启动不成功) ## 新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码
- 更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库
chown mysql:mysql /var/lib/mysql -R
- 启动之前可以自定义一些特殊需要
vim /etc/my.cnf
··························
[mysqld]
lower_case_table_names=1 ## 先版mysql不支持配置忽略大小写 初始化MySQL时候加上此配置 (0区分 1不区分)
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
character_set_server=UTF8MB4
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
port=3307
[mysql]
port=3307
···························
- 启动mysql
systemctl start mysqld.service
-- 修改密码 (新版的mysql在第一次登录后更改密码前是不能执行任何命令的)
[root@5201351 ~]# mysql -uroot -p')j#)=uRig4yJ'
mysql> update user set passwordD="test" where user='root'; -- 修改密码
mysql> update use set host="%" where user = 'root'; -- 设置远程登录(可用sqlyog、navicat等软件登录)
mysql> flush privileges; -- 刷新权限