298 lines
9.0 KiB
Markdown
298 lines
9.0 KiB
Markdown
|
||
|
||
# mysqldump备份数据库
|
||
|
||
## 备份实例下的所有库
|
||
|
||
```shell
|
||
mysqldump -uroot -p -A > all.sql
|
||
```
|
||
|
||
## 备份单个指定数据库
|
||
|
||
```shell
|
||
mysqldump -uroot -p test > test.sql
|
||
```
|
||
|
||
## 备份多个指定数据库
|
||
|
||
```shell
|
||
mysqldump -uroot -p test1 test2 > test12.sql
|
||
```
|
||
|
||
## 备份指定数据库中的单个表
|
||
|
||
```shell
|
||
mysqldump -uroot -p test user > test.user.sql
|
||
```
|
||
|
||
## 备份指定数据库中的多个表
|
||
|
||
```shell
|
||
mysqldump -uroot -p test user role > test.ur.sql
|
||
```
|
||
|
||
## 备份数据库表结构只包含DDL语句
|
||
|
||
```shell
|
||
# --no-data 或 -d
|
||
mysqldump -uroot -p test --no-data > test.sql
|
||
```
|
||
|
||
## 备份数据库带库名
|
||
|
||
```shell
|
||
mysqldump -uroot -p -B test > test.sql
|
||
```
|
||
|
||
# Xtrabackup备份数据库
|
||
|
||
## 安装
|
||
|
||
### wget方式
|
||
|
||
1. 安装qpress rpm包。
|
||
```shell
|
||
wget https://repo.percona.com/yum/release/7/RPMS/x86_64/qpress-11-1.el9.x86_64.rpm
|
||
rpm -ivh qpress-11-1.el9.x86_64.rpm
|
||
```
|
||
|
||
2. 安装Percona XtraBackup
|
||
|
||
- MySQL 5.6、5.7,以下载并安装Percona XtraBackup 2.4.9为例
|
||
```shell
|
||
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el9.x86_64.rpm
|
||
|
||
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm --nodeps --force
|
||
```
|
||
|
||
- MySQL 8.0,以下载并安装Percona XtraBackup 8.0为例
|
||
```shell
|
||
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
|
||
|
||
rpm -ivh percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm --nodeps --force
|
||
```
|
||
|
||
## 恢复
|
||
|
||
|
||
|
||
|
||
|
||
# Windows 下安装 绿色版
|
||
|
||
先下载[MySQL :: Download MySQL Community Server](https://dev.mysql.com/downloads/mysql/)
|
||
|
||

|
||
|
||
1. 解压下载好的压缩包
|
||

|
||
|
||
2. 解压后得到
|
||

|
||
|
||
3. 新建一个 `my.ini`文件
|
||

|
||
|
||
4. 解压后的mysql根目录下没有my.ini文件,自己去网上找一份就可或者使用我在后面给出的代码。.ini文件会在初始化mysql中用到
|
||
```ini
|
||
# For advice on how to change settings please see
|
||
# http=//dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
|
||
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
|
||
# *** default location during install, and will be replaced if you
|
||
# *** upgrade to a newer version of MySQL.
|
||
|
||
[client]
|
||
port = 3306
|
||
default-character-set = utf8
|
||
|
||
[mysqld]
|
||
|
||
# Remove leading # and set to the amount of RAM for the most important data
|
||
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
|
||
# innodb_buffer_pool_size = 128M
|
||
|
||
# Remove leading # to turn on a very important data integrity option= logging
|
||
# changes to the binary log between backups.
|
||
# log_bin
|
||
port = 3306
|
||
# These are commonly set, remove the # and set as required.
|
||
basedir="D:\app\mysql-5.7.43-winx64"
|
||
datadir="D:\app\mysql-5.7.43-winx64\data"
|
||
# server_id = .....
|
||
character_set_server = utf8
|
||
|
||
# Remove leading # to set options mainly useful for reporting servers.
|
||
# The server defaults are faster for transactions and fast SELECTs.
|
||
# Adjust sizes as needed, experiment to find the optimal values.
|
||
# join_buffer_size = 128M
|
||
# sort_buffer_size = 2M
|
||
# read_rnd_buffer_size = 2M
|
||
|
||
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
|
||
|
||
```
|
||
|
||
5. 修改ini配置文件中的安装目录和数据存放目录修改为mysql文件的路径
|
||
|
||
6. \#设置mysql的安装目录
|
||
basedir=D:\app\mysql-5.7.43-winx64
|
||
\#设置mysql数据库的数据的存放目录
|
||
datadir=D:\app\mysql-5.7.43-winx64\data
|
||
|
||
7. 打开cmd,初始化数据库
|
||
```powershell
|
||
mysqld --initialize
|
||
```
|
||
|
||
8. 初始化完成后,mysqld根目录下会自动新增data文件夹
|
||

|
||
|
||
9. 打开data文件夹,找到.err后缀文本打开
|
||

|
||
|
||
10. 找到文件password位置,红色框中为数据库初始化密码,后续修改初始化密码使用
|
||
```err
|
||
2023-10-07T04:37:02.330654Z 1 [Note] A temporary password is generated for root@localhost: (iw?Mw:Vs7n&
|
||
```
|
||
|
||
11. 安装数据库
|
||
```powershell
|
||
mysqld --install
|
||
```
|
||
|
||
12. 启动服务
|
||
```powershell
|
||
net start mysql
|
||
```
|
||
|
||
13. 关闭服务
|
||
```powershell
|
||
net stop mysql
|
||
```
|
||
|
||
14. 修改初始密码
|
||
|
||
- 登录
|
||
```powershell
|
||
mysql -uroot -p'你的初始密码,步骤4中红框里的字符'
|
||
```
|
||
|
||
- 修改密码为 123456
|
||
```mysql
|
||
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
|
||
```
|
||
|
||
15. 服务卸载
|
||
```powershell
|
||
net stop mysql
|
||
mysqld --remove
|
||
```
|
||
|
||
# Linux 安装MySQL客户端
|
||
|
||
## 安装
|
||
|
||
1. 在浏览器下载Linux系统的MySQL客户端安装包。建议您下载的MySQL客户端版本高于已创建的GaussDB(for MySQL)实例中数据库版本。
|
||
在下载页面找到对应版本[链接](https://dev.mysql.com/downloads/file/?id=496982),以mysql-community-client-8.0.21-1.el6.x86_64为例,打开页面后,即可下载安装包。
|
||

|
||
|
||
2. 将安装包上传到ECS。
|
||
|
||
3. 执行以下命令安装MySQL客户端。
|
||
rpm -ivh mysql-community-client-8.0.21-1.el6.x86_64.rpm
|
||
|
||
> - 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下:
|
||
>
|
||
> rpm -ivh --replacefiles mysql-community-client-8.0.21-1.el6.x86_64.rpm
|
||
>
|
||
> - 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下:
|
||
>
|
||
> rpm -ivh --nodeps mysql-community-client-8.0.21-1.el6.x86_64.rpm
|
||
|
||
## 连接
|
||
|
||
1. **mysql -h** <*host*> **-P** *<port>* **-u** <*userName*> **-p**
|
||
示例:
|
||
|
||
mysql -h 192.168.0.16 -P 3306 -u root -p
|
||
|
||
参数说明
|
||
|
||
| 参数 | 说明 |
|
||
| ------------ | ---------------------------- |
|
||
| <*host*> | 获取的读写内网地址。 |
|
||
| *<port>* | 获取的数据库端口,默认3306。 |
|
||
| <*userName*> | 管理员帐号root。 |
|
||
|
||
2. 出现如下提示时,输入数据库帐号对应的密码。
|
||
```mysql
|
||
Enter password:
|
||
```
|
||
|
||
3. 报错mysql: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
|
||
|
||
下载rpm包:
|
||
https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm
|
||
安装rpm包:
|
||
|
||
```shell
|
||
rpm -i compat-openssl10-1.0.2o-3.el8.x86_64.rpm
|
||
错误:依赖检测失败:
|
||
make 被 compat-openssl10-1:1.0.2o-3.el8.x86_64 需要
|
||
rpm -i compat-openssl10-1.0.2o-3.el8.x86_64.rpm --nodeps --force
|
||
|
||
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
|
||
cp /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
|
||
|
||
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
|
||
cp /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
|
||
```
|
||
|
||
|
||
|
||
# MySQL 客户端
|
||
|
||
执行脚本
|
||
|
||
```mysql
|
||
source <脚本绝对路径>
|
||
```
|
||
|
||
# 用户和权限
|
||
|
||
```mysql
|
||
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
|
||
GRANT Usage ON *.* TO 'username'@'%';
|
||
GRANT Alter ON database.* TO 'username'@'%';
|
||
GRANT Create ON database.* TO 'username'@'%';
|
||
GRANT Create view ON database.* TO 'username'@'%';
|
||
GRANT Delete ON database.* TO 'username'@'%';
|
||
GRANT Drop ON database.* TO 'username'@'%';
|
||
GRANT Index ON database.* TO 'username'@'%';
|
||
GRANT Insert ON database.* TO 'username'@'%';
|
||
GRANT References ON database.* TO 'username'@'%';
|
||
GRANT Select ON database.* TO 'username'@'%';
|
||
GRANT Show view ON database.* TO 'username'@'%';
|
||
GRANT Update ON database.* TO 'username'@'%';
|
||
GRANT PROCESS ON *.* TO 'username'@'%';
|
||
```
|
||
|
||
|
||
|
||
# 存储过程和函数
|
||
|
||
## 函数
|
||
|
||
创建函数要加上**DELIMITER $$**、**$$ DELIMITER**
|
||
|
||
MySQL 8 还需要执行
|
||
|
||
```mysql
|
||
-- 查看该参数,默认为0
|
||
select @@log_bin_trust_function_creators;
|
||
-- 设置为1
|
||
set GLOBAL log_bin_trust_function_creators=1;
|
||
```
|
||
|