Linux环境安装Mysql
# 普通安装
# 开始下载Mysql
选择合适的版本,下载即可
# 查看安装情况
- 查看mysql是否已安装
rpm -qa | grep mysql
1
- CentOs 7 会有默认的 mariadb 数据库,和 MySQL 有冲突,所以需要进行卸载
rpm -qa | grep mariadb
yum remove mariadb-libs.x86_64
1
2
3
2
3
# 上传、解压
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
1
# 修改、移动目录
修改解压后的目录名,并移动到指定目录
mv ./mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.35
1
# 创建用户组
如果已经创建 MySQL 组和用户,无需这一步,没有则创建
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
#创建用户组
groupadd mysql
#创建用户,并添加该用户到组中
useradd -g mysql mysql
#设置密码
passwd mysql
# 输入自定义密码
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 创建数据目录并赋予权限
进入 MySQL 目录并创建 data 目录,其中 data 目录存放数据相关的数据。
- 创建目录
cd /usr/local/mysql-5.7.35
mkdir data
1
2
2
- 授权
chown -R mysql.mysql /usr/local/mysql-5.7.35
1
# 初始化数据库
# 修改配置
- 编辑
/etc/my.conf
文件
vim /etc/my.conf
1
- 添加如下配置
[mysqld]
# 设置 3306 端口
port=3306
# 设置 mysql 的安装目录
basedir=/usr/local/mysql-5.7.35
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为 UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置 mysql 客户端默认字符集
default-character-set=utf8
[client]
# 设置 mysql 客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
需要修改的内容是第 5 行和第 7 行:basedir 填写自己的 MySQL 根目录,datadir填写数据 data 目录路径,其他不变。
- 进行初始化操作,并记住初始化密码,登录需要
首先进入 MySQL 根目录下的 bin 目录,里面有个 mysqld 命令,拿来初始化
cd /usr/local/mysql-5.7.35/bin
./mysqld --initialize
1
2
2
记住初始化密码
# systemctl 管理服务
- 创建 systemctl 管理 MySQL 的配置文件:
vim /usr/lib/systemd/system/mysqld.service
1
填入下面的内容
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql-5.7.35/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
然后重载配置文件,执行:
systemctl daemon-reload
1
- 启动mysql服务
systemctl start mysqld
1
2
2
- 设置开机自启
systemctl enable mysqld
1
# 设置环境变量
每次登录 MySQL 都需要 bin 目录下的 mysql 命令。配置好环境变量,无论在哪里,都可以直接输入 mysql 进行登录。
vi /etc/profile
1
2
2
去到最后一行,添加如下内容:MySQL 根目录下的 bin 目录
export PATH=$PATH:/usr/local/mysql-5.7.35/bin
1
重新载入文件
source /etc/profile
1
# docker 镜像方式安装
- 查看docker运行状态,如未启动请先启动
systemctl status docker
1
- 下载/加载mysql镜像
环境允许的情况下,联网下载镜像,否则载入下载后的镜像
- 下载镜像
sudo docker pull mysql:8.0.30
1
- 加载
# 载入命令
sudo docker load < docker_arm_mysql8.0.30.tar
1
2
2
- 最后,查看镜像信息
sudo docker images | grep mysql
1
- 在宿主机提前创建mysql相关目录,用以做docker容器的挂载目录(目录仅供参考,可自定义目录)
(1)创建配置文件目录
mkdir -p /usr/local/mysql8_docker/conf
1
(2)创建数据文件目录
mkdir -p /usr/local/mysql8_docker/data
1
(3)创建日志文件目录
mkdir -p /usr/local/mysql8_docker/log
1
- 创建mysql容器并启动
sudo docker run --name mysql8 -p 3306:3306 \
-v /usr/local/mysql8_docker/log:/var/log/mysql \
-v /usr/local/mysql8_docker/data:/var/lib/mysql \
-v /usr/local/mysql8_docker/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=a123456
-d arm64v8/mysql:8.0.30
1
2
3
4
5
6
2
3
4
5
6
# 安装后使用
# 登录并修改密码
- 登录 MySQL
#执行后输入密码
mysql -uroot -p
1
2
2
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
1
# 配置远程连接
配置远程连接后,可以让其他地方能连接到该 MySQL 服务器。
登陆Mysql。
切换到 MySQL 数据库,并配置远程连接,并刷新重启:
use mysql
update user set host ='%' where user='root';
FLUSH PRIVILEGES;
1
2
3
2
3