• mysql-5.7.30安装配置


    1. MySQL软件下载

    下载地址:
    http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.7/
    http://mirrors.163.com/mysql/Downloads/MySQL-5.7/

    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-community-client-5.7.26-1.el7.x86_64.rpm
    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-community-common-5.7.26-1.el7.x86_64.rpm
    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-community-devel-5.7.26-1.el7.x86_64.rpm
    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-community-libs-5.7.26-1.el7.x86_64.rpm
    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-community-server-5.7.30-1.el7.x86_64.rpm

    2. MySQL安装

    yum localinstall *.rpm

    3. MySQL服务启动

    语法:
    systemctl start | stop | restart | status mysqld

    # 启动MySQL服务,并将服务加入开机启动
    systemctl enable mysqld
    systemctl start mysqld
    systemctl status mysqld

    4. 登录并配置MySQL

    说明:mysql在安装完成,启动mysqld服务后,MySQL会自动生成一个随机的root用户密码,可以到日志里面查看。

    [root@cn-prom ~]# vim /var/log/mysqld.log
    
    2020-09-16T01:48:30.469772Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-09-16T01:48:30.760416Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2020-09-16T01:48:30.809246Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2020-09-16T01:48:30.868591Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: b90cb3b5-f7be-11ea-8843-00505687264b.
    2020-09-16T01:48:30.869372Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2020-09-16T01:48:31.540430Z 0 [Warning] CA certificate ca.pem is self signed.
    2020-09-16T01:48:31.716721Z 1 [Note] A temporary password is generated for root@localhost: l5s;PyK%(odX
    2020-09-16T01:48:34.315475Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-09-16T01:48:34.317738Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.30) starting as process 14208 ...

    可以看到类似如下信息:
    2020-03-03T06:24:40.573789Z 1 [Note] A temporary password is generated for root@localhost: l5s;PyK%(odX

    说明:用该临时密码登录mysql后,必须要先修改密码

    [root@mydb-server001 opt]# mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 10
    Server version: 5.7.26
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    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.
    
    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    mysql> set password = PASSWORD('cbMiu3@db.com');
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    说明:如果不符合MySQL密码策略要求,会出现上述错误。
    MySQL密码复杂度配置是通过参数validate_password_policy来控制的,你可以去修改,但是建议你不要修改(如果要修改,参考下文描述)。
    validate_password_policy 有以下取值:

    mysql> SHOW VARIABLES LIKE 'validate_password%';
    +--------------------------------------+--------+
    | Variable_name                        | Value  |
    +--------------------------------------+--------+
    | validate_password_check_user_name    | OFF    |
    | validate_password_dictionary_file    |        |
    | validate_password_length             | 8      |
    | validate_password_mixed_case_count   | 1      |
    | validate_password_number_count       | 1      |
    | validate_password_policy             | MEDIUM |
    | validate_password_special_char_count | 1      |
    +--------------------------------------+--------+
    7 rows in set (0.00 sec)

    Policy Tests Performed
    0 or LOW Length
    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
    2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
    默认是1,即MEDIUM,所以设置MySQL的密码必须不小于8位,且必须含有数字,小写或大写字母,特殊字符。

    5. 修改mysql密码

    mysql> set password = PASSWORD('NMm#t87TO2JL&Zq2');
    mysql> set password = PASSWORD('cbMiu936@mydb.com');
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)
    
    mysql> 

    6. 设置mysql的中文编码支持

    # 修改/etc/my.cnf
    vim /etc/my.cnf

    在[mysqld]中添加参数,使得mariadb服务端支持中文
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci

    character_set_server = utf8
    collation-server = utf8_bin

    # 重启mariadb服务,读取my.cnf新配置
    systemctl restart mysqld

    # 登录数据库,查看字符编码

    mysql -uroot -p
    输入 s 查看编码

    7. mysql常用命令

    desc              #查看表结构
    create database   #数据库名
    create table      #表名
    
    # 查看如何创建db的
    show create  database  #库名
    
    # 查看如何创建table结构的
    show create table 表名;
    
    # 修改mysql的密码
    set password = PASSWORD('mysqlrootuser686');
    
    # 创建mysql的普通用户,默认权限非常低
    create user mcb@'%' identified by 'changbin.miao';
    
    # 查询mysql数据库中的用户信息
    use mysql;
    select host,user,password  from user;
    
    --模糊查询匹配
    show status like 'Thread_%';
    SHOW VARIABLES LIKE 'validate_password%';
    
    如果我们的show status语句中不包含统计范围关键字,则默认统计范围为SESSION,也就是只统计当前连接的状态信息。
    如果我们需要查询自当前MySQL启动后所有连接执行的SELECT语句总数,我们可以执行如下语句:
    show global status like 'com_select';
    
    --查看MySQL本次启动后的运行时间(单位:秒)
    show status like 'uptime';
    
    --查看select语句的执行数
    show [global] status like 'com_select';
    
    --查看insert语句的执行数
    show [global] status like 'com_insert';
    
    --查看update语句的执行数
    show [global] status like 'com_update';
    
    --查看delete语句的执行数
    show [global] status like 'com_delete';
    
    --查看试图连接到MySQL(不管是否连接成功)的连接数
    show status like 'connections';
    
    --查看线程缓存内的线程的数量。
    show status like 'threads_cached';
    
    --查看当前打开的连接的数量。
    show status like 'threads_connected';
    
    --查看当前打开的连接的数量。
    show status like 'threads_connected';
    
    --查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。
    show status like 'threads_created';
    
    --查看激活的(非睡眠状态)线程数。
    show status like 'threads_running';
    
    --查看立即获得的表的锁的次数。
    show status like 'table_locks_immediate';
    
    --查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。
    show status like 'table_locks_waited';
    
    --查看创建时间超过slow_launch_time秒的线程数。
    show status like 'slow_launch_threads';
    
    --查看查询时间超过long_query_time秒的查询的个数。
    show status like 'slow_queries';

    8. 给用户添加权限

    # 对所有库和所有表授权所有权限
    grant all privileges on *.* to 账户@主机名
    # 给mcb用户授予所有权限
    grant all privileges on *.* to mcb@'%';
    # 刷新授权表
    flush privileges;

    9. 授予远程登录权限

    # 给apollo用户授予所有权限
    grant all privileges on *.* to mcb@'%';
    # 给与root权限授予远程登录的命令
    # centos这是密码随意设置
    grant all privileges on *.* to root@'%' identified by 'centos';
    # 此时可以在windows登录linux的数据库
    # 连接服务器的mysql
    mysql -umcb -p -h 服务器的地址

  • 相关阅读:
    Deep Learning 15:RBM的学习
    [解惑]MHA基本原理
    里程碑--学会蝶泳
    orchestrator中的raft snapshot操作
    使用binlog恢复被删除的数据
    关于MySQL binlog二进制日志
    无锁加载配置
    go tool trace 浏览器空白页问题 trace shows blank page
    godoc的使用
    Error 1390: Prepared statement contains too many placeholders
  • 原文地址:https://www.cnblogs.com/miaocbin/p/13677821.html
Copyright © 2020-2023  润新知