• centos7 安装mysql8.0


    下载mysql8.0rpm安装包

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

    安装yum repo文件

    rpm -ivh mysql80-community-release-el7-11.noarch.rpm

    更新yum源

    yum clean all
    yum makecache

     查看mysql yum仓库中mysql版本,使用如下命令:

    yum repolist all | grep mysql

    可以看到 MySQL 5.5 5.6 5.7为禁用状态 而MySQL 8.0为启用状态;

    如果您不想安装mysql8.0的版本我们可以按下面操作去做,要是安装的mysql8.0版本这步可以略过。

    使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态:

    yum-config-manager --disable mysql80-community
     
    yum-config-manager --enable mysql57-community

    安装mysql 命令:

    yum install mysql-community-server

    开启mysql服务:

    systemctl start mysqld.service

    设置开机自启:

    systemctl enable mysqld.service
    
    -- 如果开机没有启动的话就使用下面这个命令吧,反正我是没使用
    systemctl daemon-reload

    数据库的服务操作:

    #启动mysql
    systemctl start mysqld.service
     
    #结束
    systemctl stop mysqld.service
     
    #重启
    systemctl restart mysqld.service
     
    #开机自启
    systemctl enable mysqld.service

    获取初始密码登录mysql

    mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;

    cat /var/log/mysqld.log | grep password

    使用初始密码登录mysql

    mysql -uroot -p

    mysql8.0版本必须符合长度(默认是8位),且必须含有数字,小写或大写字母,特殊字符。因为实在我本地自己的库,所以我修改了密码最小长度和密码的策略

    mysql 8.0以上 新版本账号密码策略修改和密码修改 

         老版本的密码策略变量:

            validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low  1-->MEDIUM  2-->strong。

      validate_password_length密码长度的最小值(这个值最小要是4)。

      validate_password_number_count 密码中数字的最小个数。

      validate_password_mixed_case_count大小写的最小个数。

      validate_password_special_char_count 特殊字符的最小个数。

      validate_password_dictionary_file 字典文件

           8.0后要注意密码策略变量变化 

        validate_password.check_user_name ON 

        validate_password.dictionary_file 

        validate_password.length 

        validate_password.mixed_case_count 

        validate_password.number_count 

        validate_password.policy 

        validate_password.special_char_count 

      如:validate_password_policy 变为validate_password.policy.

      所以

      set global validate_password_policy=0;变为 set global validate_password.policy=0 ;

      密码最小长度(4):

      set global validate_password_length=6; 变为 set global validate_password.length=4


     修改root的密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

    远程设置:

    复制代码
    #远程设置
    mysql> use mysql;
    mysql> update user set host='%' where user='root';
    #授权用户名的权限,赋予任何主机访问数据的权限
    #本人没有执行这步 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
    mysql> FLUSH PRIVILEGES;
    复制代码

    开放3306端口:

    -- 查看已经开放的端口
    firewall-cmd --list-ports  
    
    -- 开启端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent  

    命令含义: 

      –zone #作用域 

      –add-port=80/tcp #添加端口,格式为:端口/通讯协议 

      –permanent #永久生效,没有此参数重启后失效

     重启防火墙:

    复制代码
    #重启firewall  
    firewall-cmd --reload  
    #停止firewall  
    systemctl stop firewalld.service  
    #禁止firewall开机启动  
    systemctl disable firewalld.service
    复制代码

     端口开放后就可以进行数据库连接操作了,在使用Navicat连接 Mysql 8.0.15可能会出现问题 Client does not support authentication protocol 错误解决方法:

    复制代码
    #修改加密规则 
    ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
    #更新一下用户的密码 
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
    #刷新权限
    FLUSH PRIVILEGES;
    复制代码

    mysql的其他操作:

      查看数据库编码:

    show variables like 'character%';



    SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'

    查看单个数据库的编码设置

    #方法一:
    select * from information_schema.schemata where schema_name="test_character";
    
    #方法二:
    show crate database test_character;

    查看单个表的编码设置

    show crate table test_character.test;

    如果编码不统一,很容易出现中文乱码,下面介绍在多个层面上修改编码设置

    创建数据库时直接指定编码

    create database <数据库名> character set utf8;

    修改数据库的编码

    alter database <数据库名> character set utf8;

    创建表时指定编码

    create table <表名> (
    id int(10),
    name varchar(20)
    )default charset=utf8;

    修改表的编码

    alter table <表名> character set utf8;

    数据库中下面的几个变量必须是uft8或是utf8mb4:

    character_set_client  (客户端来源数据使用的字符集)
    character_set_connection     (连接层字符集)
    character_set_database   (当前选中数据库的默认字符集)
    character_set_results (查询结果字符集)
    character_set_server (默认的内部操作字符集)

    数据库连接参数中:

    characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。

    而autoReconnect=true是必须加上的。

    部分参数配置查询命令:

    复制代码
    #查询mysql最大连接数设置
    
    show global variables like 'max_conn%';
    
    SELECT @@MAX_CONNECTIONS AS 'Max Connections';
    
     
    
    # 查看最大链接数
    
    show global status like 'Max_used_connections';
    
     
    
    # 查看慢查询日志是否开启以及日志位置
    
    show variables like 'slow_query%';
    
     
    
    # 查看慢查询日志超时记录时间
    
    show variables like 'long_query_time';
    
     
    
    # 查看链接创建以及现在正在链接数
    
    show status like 'Threads%';
    
     
    
    # 查看数据库当前链接
    
    show processlist;
    
     
    
    # 查看数据库配置
    
    show variables like '%quer%';
    复制代码

    查看mysql版本:

    select version();
  • 相关阅读:
    Oracle分页SQL
    CentOS7下安装Anaconda3
    Alibaba分层领域模型规约
    java的continue标签
    SQLserver 及 redis 无法连接问题
    HTTP状态码
    java命令功能
    sql 查询结果自增序号
    Viewpage实现左右无限滑动
    Android OOM 问题的总结
  • 原文地址:https://www.cnblogs.com/ushowtime/p/14304816.html
Copyright © 2020-2023  润新知