• mysql8.0的RPM方式安装


    1. 下载

    https://dev.mysql.com/downloads/
    

    使用wget下载yum的源信息:

    wget -i -c https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
    

    或者直接下载rpm安装包

    链接地址:
    https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.26-1.el7.x86_64.rpm
    

    注意都是rpm结尾,但是文件大小相差比较大,yum源的rpm安装包只有几十K,真正的RPM安装包是几百兆。

    2. 安装

    2.1卸载历史版本mysql以及mariadb

    # 查询
    rpm -qa|grep mysql
    rpm -qa|grep mariadb
    # 移除
    rpm -ev [需要移除组件的名称]
    rpm -e --nodeps [需要移除组件的名称]  //此命令为强制卸载
    # 或者用yum移除
    yum remove 
    

    2.2 使用yum源信息安装

    # repo的安装,执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
    rpm -ivh mysql80-community-release-el7-1.noarch.rpm
    cd /etc/yum.repos.d/
    # 注意:必须进入到/etc/yum.repos.d/目录后再使用yum命令进行安装
    yum -y install mysql-server
    
    
    # 如果报错误Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY,加上force和nodeps参数即可
    # 例如:
    rpm -ivh mysql-community-server-8.0.25-1.el8.x86_64.rpm --force --nodeps
    

    2.3 使用rpm直接安装

    如果报错误Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY,加上force和nodeps参数

    安装服务端:

    rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --force --nodeps
    

    安装客户端:

    rpm -ivh rpm包
    * 安装common包
    rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
    * 安装类库
    rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --force --nodeps
    * 安装客户端(前两个是其依赖)
    rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
    

    2.4 查看安装后的信息

    # 查看服务状态,可能没启动
    systemctl status mysqld
    
    # 启动服务
    systemctl start mysqld
    
    cat /etc/group | grep mysql
    cat /etc/passwd | grep mysql
    mysqladmin --version
    

    2.5 初始化mysql

    # 创建数据文件目录和mysql系统数据库 产生随机root密码
    mysqld --initialize
    

    查看初始密码:

    cat /var/log/mysqld.log | grep password
    或
    grep 'temporary password' /var/log/mysqld.log
    

    修改密码:没有经过测试。

    复制 root@localhost: 后面的密码。登录mysql,并粘贴默认密码
    因为MySQL8.0的更改,导致必须要重置密码
    alter user 'root'@'localhost' identified by '12345678';
    如果设置密码时候出现提示
    
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    
    代表需要降低policy的等级后在执行
    
    set global validate_password.policy=0;
    开启MySQL远程连接
    
    
    use mysql;
    #修改root账户权限
    update user set host = '%' where user = 'root';
    #刷新权限
    flush privileges;
    

    2.6 安全设置

    mysql_secure_installation
    
    # 提示如下步骤:
    1. 输入初始密码;
    2. 提示root密码过期,需要修改密码,这是mysql8的提示,输入两次密码确认;
    3. 提示是否更改root密码,这步其实重复了;
    4. 是否删除匿名用户,建议删除;
    5. 是否禁用root账户的远程登录,建议禁用,即mysql的root只可以本机登录;
    6. 是否删除test数据库,建议删除;
    7. 是否重新加载权限表,选y。
    

    2.7 mysql登录

    # 输入刚才修改后的密码
    mysql -uroot -p 
    

    2.8 重置密码(Mysql8.0+有变化)

    先把root的旧密码置空(这个步骤可以不做)

    use mysql;
    update user set authentication_string='' where user='root';
    # 备注:Mysql5.7+ password字段 已改成 authentication_string字段
    

    重置成新密码:

    alter user 'root'@'localhost' identified by 'newpassword';
    # 备注:Mysql8.0修改密码方式已有变化(此处是个坑,需要注意)
    # Mysql8.0之前:
    update user set password=password('root') where user='root';
    

    重新登录:

    mysql -uroot -pnewpassword
    

    2.9 如何停止、重启和查看mysql服务

    systemctl stop mysqld //停止服务
    systemctl restart mysqld //重启服务
    systemctl status mysqld //查看服务
    

    2.10 mysql相关目录

    # 相关命令
    /usr/bin 
    
    # 配置文件目录
    /usr/share/mysql
    
    # 数据库文件存放目录
    /var/lib/mysql
    
    # mysql的启动配置文件
    /etc/my.cnf 
    
    

    其他:

    my.ini # windows操作系统下的配置文件
    my.cnf # linux操作系统下的配置文件
    mysqld # 是后台守护进程,即mysql daemon
    mysql # 是客户端命令行
    

    3. 创建用户和数据库

    3.1 创建用户

    用户名:wood,密码:PWDwooddb_2021,可以从任何地址登入。

    create user 'wood'@'%' identified by 'PWDwooddb_2021'
    

    3.2 创建数据库wood_db;

    create database wood_db;
    

    3.3 授权

    常用授权语句

    GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名    对某个特定数据库中的特定表单给予授权。
    GRANT 权限 ON 数据库.* TO 用户名@主机名    对某个特定数据库中的所有表单给予授权。
    GRANT 权限 ON *.* TO 用户名@主机名    对所有数据库及所有表单给予授权。
    GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名    对某个数据库中的所有表单给予多个授权。
    GRANT ALL PRIVILEGES ON *.* TO 用户名@主机名    对所有数据库及所有表单给予全部授权。
    

    授权wood用户所有wood_db的权限

     grant all on wood_db.* to 'wood'@'%';
    

    查看用户授权

    show grants for wood@'%';
    +---------------------------------------------------+
    | Grants for wood@%                                 |
    +---------------------------------------------------+
    | GRANT USAGE ON *.* TO `wood`@`%`                  |
    | GRANT ALL PRIVILEGES ON `wood_db`.* TO `wood`@`%` |
    +---------------------------------------------------+
    2 rows in set (0.00 sec)
    
    

    如果修改没有生效,考虑使用flush privileges命令刷新权限信息。

  • 相关阅读:
    (树的直径)第九届湘潭市大学生程序设计比赛 H-Highway
    (记忆化DFS)Codeforces Round #413 D-Field expansion
    (树状数组)Codeforces Round #413 C-Fountains
    (几何)LeetCode Weekly Contest 32 D-Erect the Fence
    LeetCode Weekly Contest 32 解题报告
    (贪心)华师大程序设计竞赛 F-丽娃河的狼人传说
    (最短路)AtCoder Beginner Contest 061 D
    Tinkoff Challenge
    Codeforces Round #410 (Div. 2) 解题报告
    (二叉树)UVA
  • 原文地址:https://www.cnblogs.com/asker009/p/15072354.html
Copyright © 2020-2023  润新知