166 lines
6.3 KiB
Markdown
166 lines
6.3 KiB
Markdown
# 部署步骤
|
||
|
||
## 1. 安装MySQL8
|
||
|
||
### 1.1 方案一 物理机安装MySQL8
|
||
|
||
- *操作系统*
|
||
|
||
*Ubuntu20.04LTS*
|
||
|
||
如果操作系统不是Ubuntu20则需要更新MySQL官方源信息
|
||
|
||
#### 1.1.1 apt安装MySQL
|
||
|
||
```sh
|
||
$ sudo apt update && sudo apt install mysql-server
|
||
|
||
```
|
||
#### 1.1.2. 检查安装后是否启动成功
|
||
|
||
```sh
|
||
$ ps -ef | grep mysqld
|
||
mysql 65492 1 0 17:46 ? 00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
|
||
```
|
||
|
||
#### 1.1.3. 修改MySQL监听地址和端口
|
||
|
||
```sh
|
||
$ sudo netstat -alnt | grep 3306
|
||
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
|
||
|
||
# 编辑mysqld.cnf文件将bind-address对应的值由127.0.0.1改成0.0.0.0或局域网IP地址(端口视情况决定是否修改)
|
||
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
|
||
|
||
# 重启MySQL服务
|
||
$ sudo service mysql restart
|
||
```
|
||
|
||
#### 1.1.4. 创建oss用户和权限
|
||
|
||
```sh
|
||
# MySQL安装完会在/etc/mysql目录下有一个debian.cnf文件可用于本地登录并修改root密码或创建用户
|
||
$ sudo cat /etc/mysql/debian.cnf
|
||
|
||
[client]
|
||
host = localhost
|
||
user = debian-sys-maint
|
||
password = xgf1OdcBzRy0LaEP
|
||
socket = /var/run/mysqld/mysqld.sock
|
||
|
||
# 本地登录MySQL,执行下面的命令行
|
||
$ mysql -udebian-sys-maint -pxgf1OdcBzRy0LaEP mysql
|
||
|
||
mysql> select host,user,plugin,authentication_string from user;
|
||
+-----------+------------------+-----------------------+-------------------------------------------+
|
||
| host | user | plugin | authentication_string |
|
||
+-----------+------------------+-----------------------+-------------------------------------------+
|
||
| localhost | root | auth_socket | |
|
||
| localhost | mysql.session | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
|
||
| localhost | mysql.sys | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
|
||
| localhost | debian-sys-maint | mysql_native_password | *22CC5F671040F19FF9FB1E5A9B94D2576C4A1A24 |
|
||
| % | node | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|
||
+-----------+------------------+-----------------------+-------------------------------------------+
|
||
|
||
4 rows in set (0.00 sec)
|
||
|
||
# 创建一个admin账户并允许远程登录, 密码是123456(生产环境请设置复杂密码)
|
||
mysql> create user 'admin'@'%' identified by '123456';
|
||
Query OK, 0 rows affected (0.00 sec)
|
||
|
||
# 赋予oss所有权限
|
||
mysql> grant all on *.* to 'admin'@'%';
|
||
mysql> flush privileges;
|
||
|
||
# 修改root密码和口令加密方式并开启远程登录(视实际情况而定,如果无必要可以只修改密码不开启远程登录)
|
||
# host='%'表示开启远程访问,如果不开启就不要这个SQL字句
|
||
mysql> update user set plugin='mysql_native_password', authentication_string='', host='%' where user='root';
|
||
Query OK, 1 row affected (0.00 sec)
|
||
Rows matched: 1 Changed: 1 Warnings: 0
|
||
|
||
# 重置root账户登录密码并刷新权限
|
||
mysql> alter user 'root'@'%' IDENTIFIED BY '123456'; #适用于8.x版本修改密码(设置不成功可能是需要复杂密码)
|
||
mysql> flush privileges;
|
||
|
||
# 查看账户信息
|
||
mysql> select host,user,plugin,authentication_string from user;
|
||
+-----------+------------------+-----------------------+-------------------------------------------+
|
||
| host | user | plugin | authentication_string |
|
||
+-----------+------------------+-----------------------+-------------------------------------------+
|
||
| % | root | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|
||
| localhost | mysql.session | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
|
||
| localhost | mysql.sys | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
|
||
| localhost | debian-sys-maint | mysql_native_password | *22CC5F671040F19FF9FB1E5A9B94D2576C4A1A24 |
|
||
| % | admin | mysql_native_password | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
|
||
+-----------+------------------+-----------------------+-------------------------------------------+
|
||
5 rows in set (0.00 sec)
|
||
|
||
```
|
||
|
||
### 1.2 方案二 docker安装MySQL8
|
||
|
||
```sh
|
||
# 创建本地数据库目录
|
||
$ sudo mkdir -p /data/mysql/{mysql-files,conf,logs,data}
|
||
|
||
# 启动容器(设置root初始密码为123456)
|
||
$ docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --restart always \
|
||
-e TZ=Asia/Shanghai \
|
||
-v /data/mysql/mysql-files:/var/lib/mysql-files \
|
||
-v /data/mysql/conf:/etc/mysql \
|
||
-v /data/mysql/logs:/var/log/mysql \
|
||
-v /data/mysql/data:/var/lib/mysql \
|
||
--name mysql -d mysql:8.0.23
|
||
```
|
||
|
||
```shell
|
||
# 登录mysql终端(手动输入初始密码123456登录MySQL控制台)
|
||
$ docker exec -it mysql mysql -uroot -p mysql
|
||
|
||
Enter password:
|
||
Reading table information for completion of table and column names
|
||
You can turn off this feature to get a quicker startup with -A
|
||
|
||
Welcome to the MySQL monitor. Commands end with ; or \g.
|
||
Your MySQL connection id is 8
|
||
Server version: 8.0.23 MySQL Community Server - GPL
|
||
|
||
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
|
||
|
||
Oracle is a registered trademark of Oracle Corporation and/or its
|
||
affiliates. Other names may be trademarks of their respective
|
||
owners.
|
||
|
||
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
|
||
|
||
# 更改数据库root账户密码为123456并开启远程访问(密码可以自行修改成其他也可以保持原密码,主要是通过%符号开启root远程访问)
|
||
mysql> USE mysql;
|
||
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
|
||
mysql> FLUSH PRIVILEGES;
|
||
mysql> exit
|
||
```
|
||
|
||
## 2. 初始化数据表
|
||
|
||
将oss-manager.sql和init-data.sql文件上传到服务器/tmp目录
|
||
|
||
```shell script
|
||
# 服务器登录MySQL命令行终端执行sql文件
|
||
mysql> source /path/to/intent-system.sql
|
||
```
|
||
|
||
## 3. 解除MySQL分组查询限制
|
||
|
||
```bash
|
||
# 打开mysqld.cnf文件并在[mysqld]选项范围内加一行下面的参数(如果sql_mode已存在则去掉ONLY_FULL_GROUP_BY)
|
||
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
|
||
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
|
||
|
||
# 重启mysql服务
|
||
$ sudo service mysql restart
|
||
```
|
||
|
||
## 4. 更改服务器/容器时区
|
||
|
||
MySQL运行服务器或容器时区改为UTC+8 (北京时间)
|