• centos 7 安装 mysql 8.0.18


    MySQL Community Downloads :https://dev.mysql.com/downloads/mysql/

    一、检查是否应安装了mysql或者mariadb,有的话卸载

    1.1 检查mariadb

    rpm -qa | grep mariadb
    


    1.2 删除mariadb

    yum -y remove mariadb*
    

    1.3 检查mysql

    rpm -qa | grep mysql
    

    1.4 删除mysql

    yum -y remove mysql*
    

    1.5 删除旧的配置文件

    rm -rf /etc/my.cnf
    

    1.6 删除文件

    rm -rf /var/lib/mysql 
    

    二、安装mysql

    2.1 配置安装源

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    

    2.2 安装

    sudo yum --enablerepo=mysql80-community install mysql-community-server
    


    2.3 启动mysql
    启动

    systemctl start mysqld
    

    查看运行状态

    systemctl status mysqld
    

    停止

    systemctl stop mysqld
    

    重启

    systemctl restart mysqld
    


    2.4 查看端口运行情况

    netstat -nlpt
    

    三、查看并修改密码

    3.1 mysql安装后会生成一个默认密码,此密码登录后要修改密码,不能用于其他操作

    cat /var/log/mysqld.log
    


    3.2 登录root账号修改初始密码,复制上面的密码登录

    mysql -u root -p
    

    修改密码,注意密码要稍微复杂点(大小写+符号+数字),不然会提示 Your password does not satisfy the current policy requirements

    ALTER USER USER() IDENTIFIED BY 'Xinmima@2020';
    

    四、配置远程访问

    4.1 查下系统用户,root默认是不允许远程访问的,需要把下图root账户的localhost改成%

    use mysql;
    select user,host,plugin,authentication_string from mysql.user;
    select user,host,plugin from mysql.user;
    

    4.2 修改root的权限并刷新权限

    update mysql.user set host='%' where user='root';
    flush privileges;
    

    五、新建mysql账号 + 授权

    5.1 新建test账号,%表示允许远程登录 ,改成ip就是ip登录

    create user 'test'@'%' identified by 'Xinmima@2020';
    

    下面是是授权部分:
    5.2 给test用户授予testdb数据库的所有权限(可远程登陆)

    grant all privileges on testdb.* to 'test'@'%';
    flush privileges;
    

    5.3 给test用户授予testdb数据库的查询权限(可远程登陆)

    grant select on testdb.* to 'test'@'%';
    flush privileges;
    

    5.4 给test用户授予testdb数据库的insert,delete,update权限(可远程登陆)

    grant insert,delete,update on testdb.* to 'test'@'%';
    flush privileges;
    

    5.5 查看用户的权限

    show grants for 'test'@'%';
    


    5.6 删除test用户对数据testdb的update权限

    revoke update on testdb.* from 'test'@'%';
    flush privileges;
    

    六、修改mysql端口

    6.1 编辑my.cnf

    vi /etc/my.cnf
    

    6.2 默认配置不含port行需自行添加,按esc退出INSERT模式 :wq 保存
    port=6666

    6.3 重启mysql并查看端口状态 注意:如果是云服务器(如阿里云),一定要检查安全组是否开启相应的端口,不然客户端连不上

    systemctl restart mysqld
    netstat -nlpt
    

    七、修改mysql的数据、日志存放路径

    7.1 先停止msyql

    systemctl stop mysqld
    

    7.2 先创建好要存储的位置

    mkdir -p /data/mysql
    cd /data/mysql
    

    7.3 把文件移到/data/mysql/文件夹下,cp -a参数是权限也一起复制,然后删除原文件夹

    cp -a /var/lib/mysql /data/
    rm -rf /var/lib/mysql
    

    7.4 修改软连接

    ln -s /data/mysql /var/lib/
    

    7.5 查看软连接

    ls -la /var/lib/mysql
    

    下图是正确的软连接方式:

    7.6 修改my.cnf配置文件

    vim /etc/my.cnf
    
    属性 原值 修改为
    datadir /var/lib/mysql /data/mysql
    socket /var/lib/mysql/mysql.sock /data/mysql/mysql.sock

    datadir=/data/mysql
    socket=/data/mysql/mysql.sock

    7.7 启动mysql并查看状态

    systemctl start mysqld
    

    7.8 登录mysql,查看数据文件

    mysql -u root -p
    show global variables like "%datadir%";
    

    八、常见问题和处理

    8.1 如果客户端连接报错"Authentication plugin 'caching_sha2_password' cannot be loaded",是以为mysql 8的加密方式改了。有两种选择 1、升级客户端 2、把加密方式改为传统的方式
    推荐用新的加密方式(一般升级客户端就可以了),老项目代码的话可能有老的jar包等不支持新加密,下面是改为传统加密方式

    ALTER mysql.USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Xinmima@2020';
    

    8.2 查找mysql的安装路径

    whereis mysql
    

    mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/man/man1/mysql.1.gz

    8.3 创建数据库,字符集有两种

    方式 字符集 排序规则
    不支持emoji utf8 utf8_general_ci
    支持emoji utf8mb4 utf8mb4_general_ci

    8.4 查看mysql版本

    mysql -V
    

  • 相关阅读:
    SpringBoot @Transactional声明事务无效问题
    高并发秒杀系统方案(集成Mybatis和Redis)
    高并发秒杀系统方案(项目框架搭建)
    高并发秒杀系统方案(简介)
    解决VMware虚拟机的CentOS无法上网
    收货地址管理模块开发
    购物车模块开发
    乐观锁和悲观锁
    商品模块开发
    数据库系列学习(十)-约束
  • 原文地址:https://www.cnblogs.com/nickchou/p/12093763.html
Copyright © 2020-2023  润新知