zoukankan      html  css  js  c++  java
  • 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
    

  • 相关阅读:
    python3 TypeError: a bytes-like object is required, not 'str'
    Centos 安装Python Scrapy PhantomJS
    Linux alias
    Vim vimrc配置
    Windows下 Python Selenium PhantomJS 抓取网页并截图
    Linux sort
    Linux RSync 搭建
    SSH隧道 访问内网机
    笔记《鸟哥的Linux私房菜》7 Linux档案与目录管理
    Tornado 错误 "Global name 'memoryview' is not defined"
  • 原文地址:https://www.cnblogs.com/nickchou/p/12093763.html
Copyright © 2011-2022 走看看