2023-12-25 22:11:05 +08:00

9.3 KiB
Raw Blame History

mysqldump备份数据库

备份实例下的所有库

mysqldump -uroot -p -A > all.sql

备份单个指定数据库

mysqldump -uroot -p test > test.sql

备份多个指定数据库

mysqldump -uroot -p test1 test2 > test12.sql

备份指定数据库中的单个表

mysqldump -uroot -p test user > test.user.sql

备份指定数据库中的多个表

mysqldump -uroot -p test user role > test.ur.sql

备份数据库表结构只包含DDL语句

# --no-data 或 -d
mysqldump -uroot -p test --no-data > test.sql

备份数据库带库名

mysqldump -uroot -p -B test > test.sql

Xtrabackup备份数据库

安装

wget方式

  1. 安装qpress rpm包。

    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为例

      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为例

      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

image-20231007124717167

  1. 解压下载好的压缩包 在这里插入图片描述

  2. 解压后得到 在这里插入图片描述

  3. 新建一个 my.ini文件 在这里插入图片描述

  4. 解压后的mysql根目录下没有my.ini文件自己去网上找一份就可或者使用我在后面给出的代码。.ini文件会在初始化mysql中用到

    # 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初始化数据库

    mysqld --initialize 
    
  8. 初始化完成后mysqld根目录下会自动新增data文件夹 在这里插入图片描述

  9. 打开data文件夹找到.err后缀文本打开 在这里插入图片描述

  10. 找到文件password位置红色框中为数据库初始化密码后续修改初始化密码使用

    2023-10-07T04:37:02.330654Z 1 [Note] A temporary password is generated for root@localhost: (iw?Mw:Vs7n&
    
  11. 安装数据库

    mysqld --install
    
  12. 启动服务

    net start mysql
    
  13. 关闭服务

    net stop mysql
    
  14. 修改初始密码

    • 登录

      mysql -uroot -p'你的初始密码步骤4中红框里的字符'
      
    • 修改密码为 123456

       ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
      
  15. 服务卸载

    net stop mysql
    mysqld --remove
    

Linux 安装MySQL客户端

安装

  1. 在浏览器下载Linux系统的MySQL客户端安装包。建议您下载的MySQL客户端版本高于已创建的GaussDB(for MySQL)实例中数据库版本。 在下载页面找到对应版本链接以mysql-community-client-8.0.21-1.el6.x86_64为例打开页面后即可下载安装包。 img

  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 -u <userName> -p 示例:

    mysql -h 192.168.0.16 -P 3306 -u root -p

    参数说明

    参数 说明
    <host> 获取的读写内网地址。
    获取的数据库端口默认3306。
    <userName> 管理员帐号root。
  2. 出现如下提示时,输入数据库帐号对应的密码。

    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包:

    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 客户端

执行脚本

source <脚本绝对路径>

用户和权限

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'@'%';

创建管理员用户

create user 'zhaoyan'@'%' identified by 'zhaoyan@123';
grant all on *.* to 'zhaoyan'@'%' with grant option;
flush privileges;

限制只能本地登录root

mysql -uroot -p
use mysql;
select * from user where user = 'root';
update user set host = '127.0.0.1' where user = 'root' and host = '%';
flush privileges;

存储过程和函数

函数

创建函数要加上DELIMITER **、** DELIMITER

MySQL 8 还需要执行

-- 查看该参数默认为0
select @@log_bin_trust_function_creators;
-- 设置为1
set GLOBAL log_bin_trust_function_creators=1;