CentOS7 8安装MySQL8以后版本的详细流程和配置

一、安装版本

CentOS 8            MySQL 8.18

二、环境配置

  1. 检测系统是否自带mysql
rpm -qa|grep mysql

在这里插入图片描述

  • 如果有,进行卸载
rpm -e --nodeps mysql名

在这里插入图片描述
2. 检测系统是否自带 mariadb

rpm -qa|grep mariadb

在这里插入图片描述

  • 如果有,进行卸载
rpm -e --nodeps mariadb名

在这里插入图片描述
3. 用连接工具将下载的 mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz 上传到linux服务器的/usr/local/tmp目录下面
4. 解压mysql文件

xz -d ***.tar.xz      #比较大,等待一会儿
tar -xvf ***.tar

在这里插入图片描述
5. 移动文件夹并且进行改名

cp -r mysql-8.0.18-linux-glibc2.12-x86_64 /usr/local/mysql

在这里插入图片描述

三、安装MySQL

  1. 检查mysql组和用户是否存在,如果没有则创建

    cat /etc/group|grep mysql
    groupadd mysql   #创建一个新的mysql组
    useradd -r -g mysql mysql
        # useradd -r    参数表示mysql用户是系统用户,不可用于登录系统。
        # useradd -g    参数表示把mysql用户添加到mysql用户组中。
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aL4UJl9F-1597246219654)(index_files/d0528246-92ab-4701-b70e-ee4b3c548619.png)]

  2. 创建data文件夹

     mkdir /usr/local/mysql/data
    
  3. 将/usr/local/mysql的所有者及所属组改为mysql

    chown -R mysql.mysql /usr/local/mysql
    

    在这里插入图片描述

  4. 在/usr/local/mysql/support-files目录下创建my_default.cnf

    vim /usr/local/mysql/support-files/my_default.cnf
    

    在这里插入图片描述

  5. 写入以下内容

    [mysqld]
    # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    basedir=/usr/local/mysql
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql/data
    # 允许最大连接数
    max_connections=200
    # 允许连接失败的次数。
    max_connect_errors=10
    # 服务端使用的字符集默认为utf8mb4
    character-set-server=utf8mb4
    # 设置时区为东八区
    default-time-zone='+08:00'
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    #mysql_native_password  可以使用8.0新版认证模式,注销下面一行,如果使用5.7认证方式,不注销
    default_authentication_plugin=mysql_native_password
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8mb4
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8mb4
    
  6. 拷贝文件并改名,如果第一次安装,不会有,如果已经安装过,是否覆盖,

    cp /usr/local/mysql/support-files/my_default.cnf /etc/my.cnf
    

    在这里插入图片描述

  7. 初始化mysql,并记住临时密码,进入mysql根目录执行一下命令:

    ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
    

    在这里插入图片描述

  • 临时密码为: UAP/d!eU-4x6
  • 备注:如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过
    安装libaio命令:yum install libaio
    
  1. 进入mysql根目录,把启动脚本放到开机初始化目录
    cp support-files/mysql.server /etc/init.d/mysql
    
    在这里插入图片描述
  2. 启动mysql
    service mysql start
    
    在这里插入图片描述

四、进入mysql修改密码

  1. 登录mysql
    mysql -uroot -p
    
  • 如果报以下错误,则添加映射可以解决
    在这里插入图片描述
  • 添加映射
    ln -s  /usr/local/mysql/bin/mysql    /usr/bin
    
  • 如果报错: mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
  • 解决方法
    先查找文件: libtinfo    命令:   find /usr/lib64/ -name "libtinfo*"
    添加映射: ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5		//将libtinfo.so.6.1映射为/libtinfo.so.5
    
    在这里插入图片描述
  1. 修改密码
    #修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    FLUSH PRIVILEGES; -- 刷新权限
    
    在这里插入图片描述

五、添加用户并且赋予权限

  1. 创建用户
    -- 创建 test 用户及密码 '123456',并且可以远程访问 '%'
    mysql> create user 'test'@'%' identified by '123456';
    
  2. 删除用户
    mysql> drop user 'aaa'@'%';  -- 删除aaa用户;
    
  3. 刷新权限
    mysql> flush privileges;
    
  4. 设置用户对一个数据库有所有权限
    grant all on 数据库名.* to 用户名;
    
  5. 设置用户对所有数据库的所有权限
    grant all on *.* to 用户名;
    
  6. 关闭用户的远程访问权限
    use mysql;    -- 进入mysql数据库
    update user set host = "localhost" where user = "test" and host= "%";        -- 修改tset的host的%为localhost
    flush privileges;        -- 刷新权限
    
  7. 查看用户是否可以远程访问
    use mysql;    -- 进入mysql数据库
    select user , host from user;        -- 查询用户和是否可以远程访问,%代表可以远程访问,localhost代表只能本地访问
    

六、常用mysql命令

mysql> show global variables like 'port';  --查看mysql端口号

猜你喜欢

转载自blog.csdn.net/qq_41435602/article/details/107969521