1. docker安装MySQL
# 查看Linux服务器上是否安装过MySQL
rpm -qa | grep mysql
rpm -qa | grep mariadb
# 卸载Linux自带的MySQL
rpm -e mysql*
rpm -e mariadb
# 1、拉取镜像
docker pull mysql:5.7
# 2、创建实例并启动
# 创建目录
mkdir /data
mkdir -p /data/{log,mysql,conf}
# 3、编写/data/conf/my.conf文见
[client]
default_character_set=utf8
[mysqld]
collation_server=utf8_general_ci
character_set_server=utf8
# 4、启动镜像
docker run -p 3306:3306 --name mysql \
> -v /data/log:/var/log/mysql \
> -v /data/mysql:/var/lib/mysql \
> -v /data/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=123456 \
> -d mysql:5.7
登陆验证
2. 解压安装MySQL
2.1 从官网下载解压包
yum install -y wget
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.34-el7-x86_64.tar.gz
2.2 解压
tar -zxvf mysql-5.7.34-el7-x86_64.tar.gz
mv mysql-5.7.34-el7-x86_64 /usr/local/mysql5.7
2.3 创建用户
# 创建mysql组和用户
useradd -r -s /sbin/nologin mysql
# 创建mysql数据目录
mkdir -p /data/mysql
# 赋予权限
chown mysql:mysql -R /data/mysql
2.4 my.cnf配置
vim /etc/my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql5.7
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
character_set_server=utf8mb4
slave-net-timeout=600
wait-timeout=28800
net_read_timeout=30
net_write_timeout=60
net_retry_count=10
[mysqld_safe]
open-files-limit=8912
!includedir /etc/my.cnf.d
2.5 初始化
cd /usr/local/mysql5.7/bin/
./mysqld --defaults-file=/etc/my.cnf --user=mysql --basedir=/usr/local/mysql5.7/ --datadir=/data/mysql/ --initialize
2.6 启动
# 获取初始密码
cd /data/mysql/
grep "password" mysql.err
#添加服务
cp /usr/local/mysql5.7/support-files/mysql.server /etc/rc.d/init.d/mysql
chkconfig --add mysql
service mysql start
2.7 设置环境变量
vim /etc/profile
# mysql
export MYSQL_HOME=/usr/local/mysql5.7
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
2.8 修改密码和授权远程登陆
mysql -uroot -p
#输入密码
> use mysql
> SET PASSWORD = PASSWORD('*******');
Query OK, 0 rows affected, 1 warning (0.04 sec)
> SELECT User, Password, Host FROM user;
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
> FLUSH PRIVILEGES;