我感到全然完整,却又失去所有掌控,我有所回应,却感到寒冷,我苏醒过来,终于明白漫漫长夜的道理,我正在死去,正在听到所有该被听到的声音,但我为你而活,我卸下所有,感到全然完整,当你默念吾名,我会在那里等候

电影《年轻气盛》

安装

下载

1
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

YUM安装

1
2
3
4
5
6
7
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm
 
sudo yum install -y mysql-community-server
 
sudo systemctl start mysqld

mysql -V

查看临时密码

1
grep "A temporary password" /var/log/mysqld.log

登录

1
2
3
4
mysql -uroot -p
 
# 修改当前本地登录的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mypwd123!';

安全设置

1
mysql_secure_installation

用户访问与授权

  • 用户相关

    • 新建本地用户
      1
      CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
    • 新建远程用户
      1
      CREATE USER 'test'@'%' IDENTIFIED BY '123456';
    • 赋予指定账户指定数据库远程访问权限
      1
      GRANT ALL PRIVILEGES ON mydb.* TO 'test'@'%';
    • 赋予指定账户对所有数据库远程访问权限
      1
      GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
    • 赋予指定账户对所有数据库本地访问权限
      1
      GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';
    • 刷新权限
      1
      FLUSH PRIVILEGES;
  • 权限相关

    • 查看权限
      1
      SHOW GRANTS FOR 'test'@'%';
    • 赋予权限
      1
      GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
    • 收回权限
      1
      REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';
    • 刷新权限
      1
      FLUSH PRIVILEGES;
    • 删除用户
      1
      DROP USER 'test'@'localhost';

修改字符编码

  1. 查找配置文件位置

    1
    2
    $ whereis my.cnf
    $ /etc/my.cnf
  2. 修改配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    $ vi /etc/my.cnf
    #修改1:增加client配置(文件开头)
    [client]
    default-character-set=utf8mb4
    #修改2:增加mysqld配置(文件结尾)
    #charset
    character-set-server=utf8mb4
    collation-server=utf8mb4_general_ci
  3. 重启服务

    1
    $ systemctl restart mysqld

问题

Group by不兼容问题

在my.cnf中加入

1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION