1. 基本配置:
    1. 配置文件路径:
      /etc/my.cnf
    2. 修改字符集:
      character-set-server=utf8mb4
    3. 修改端口号:
      port=3306
    4. 关闭严格模式:
      sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
    5. 开启慢查询日志:
      slow_query_log=1
      slow_query_log_file=/var/log/mysql_slow.log
    6. 开启二进制日志:
      log-bin=日志名
    7. 执行语句:
      mysql -uroot -p -e 'select * from mysql.user'
    8. 执行文件内命令:
      mysql -uroot -p < test.sql
    9. 备份:
      mysqldump  -uroot  -p  --all-databases  >  backup.sql
      mysqldump  -uroot  -p  test  >  backup.sql
    10. 还原:
      mysql -uroot -p -D test < backup.sql  --default-character-set=utf8
  2. 主从复制:
    1. 主服务器配置:
      cat /etc/my.cnf
      [mysqld]
      server-id=1
      log-bin=master
      ...
    2. 从服务器配置:
      cat /etc/my.cnf
      [mysqld]
      server-id=2
      slave-skip-errors=all
      ...
    3. 主服务器设置:
      1. 进入命令行:
        mysql -uroot -p
      2. 查看主服务器状态:
        show master status;
    4. 从服务器设置:
      1. 进入命令行:
        mysql -uroot -p
      2. 配置:
        change master to
        master_host='xx.xx.xx.xx',
        master_port=xxxx,
        master_user='root',
        master_password='xxxxxx',
        master_log_file='xxxxx.xxx',
        master_log_pos=xxx;
      3. 开启从模式:
        start slave;
      4. 查看从服务器状态:
        show slave status\G
    5. 测试:
      1. 主:
        create database test;
      2. 从:
        show databases;
  3. 分区:
    CREATE TABLE `test`  (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
    PRIMARY KEY (`id`) USING BTREE
    ) 
    ENGINE = InnoDB 
    AUTO_INCREMENT = 1 
    CHARACTER SET = utf8 
    COLLATE = utf8_general_ci 
    PARTITION BY HASH(id)
    PARTITIONS 4;
  4. 二进制日志使用:
    1. 查看日志状态:
      show binlog events\G
    2. 备份:
      1. 以位置备份:
        mysqlbinlog --start-position=xxx --stop-position=xxx /path/to/bin-log > test.sql
      2. 以时间备份:
        mysqlbinlog --start-datetime='YYYY-mm-dd HH:ii:ss' /path/to/bin-log > test.sql
    3. 还原:
      1. 以位置还原:
        mysqlbinlog --start-position=xxx --stop-position=xxx /path/to/bin-log | mysql -uroot -p
      2. 以时间还原:
        mysqlbinlog --start-datetime='YYYY-mm-dd HH:ii:ss' /path/to/bin-log | mysql -uroot -p
  5. 使用mysql5.7自带中文全文索引:
    1. 创建:
      CREATE TABLE `test` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `title` varchar(255) DEFAULT '',
      `content` text,
      PRIMARY KEY (`id`),
      FULLTEXT KEY `title` (`title`,`content`)  WITH PARSER `ngram`
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    2. 使用:
      SELECT * FROM test WHERE MATCH (title,content) against ('张三');
  6. 使用mysql5.7自带json类型:
    1. 创建:
      CREATE TABLE `test_json` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `content` json DEFAULT NULL,
      PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    2. 使用:
      SELECT * FROM test_json WHERE content->'$.name'='lee';
文档更新时间: 2020-08-08 20:40   作者:lee