美文网首页
阿里云主机Centos7下安装mysql8

阿里云主机Centos7下安装mysql8

作者: 惜小八 | 来源:发表于2020-01-19 15:37 被阅读0次

    参考:https://www.cnblogs.com/coding-one/p/11698271.html

    1.安装之前的准备

    1.检查是否安装了mysql:rpm -qa |grep mysql-server
    
    2.卸载mariadb:由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB.
    使用rpm 命令查找出要删除的mariadb文件;
    rpm -pa | grep mariadb
    可能的显示结果如下:
    mariadb-libs-5.5.56-2.el7.x86_64
    删除上面的程序
    rpm -e mariadb-libs-5.5.56-2.el7.x86_64
    

    2.官网下载mysql的yum源

    centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;

    2.1. 访问官网,查看最新安装包

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

    2.2. 选择版本,点击“download”
    image.png
    2.3. 登录

    如果是未登录状态,会要求登录。此时会跳转到 oracle 单点登录页面,登录自己的 oracle 账号即可(没有账号就注册一个,现在下载 oracle 的产品都需要登录,比如 jdk)

    2.4. 登录后回到上述页面,右键选择的版本对应的download按钮,点击“复制链接地址菜单项”
    2.5. 登录Linux服务器,进入到某个目录(如 /usr/local/src),使用 wget 下载源安装包.
        wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
    

    3.安装mysql的yum源

    3.1安装 yum repo 文件

    rpm -ivh mysql80-community-release-el7-3.noarch.rpm
        执行结果会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo


    image.png
    3.2. 更新yum缓存

    yum clean all


    image.png

    yum makecache


    image.png

    4.安装mysql服务器

    4.1. 选择版本

    当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;

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

    yum repolist all | grep mysql


    image.png

    可以看到mysql8是可用的,其它是禁用的,我正好是需要安装mysql8,所以不用管了。如果想要安装其它版本可以修改。

    4.1.2. 修改禁用启用规则

    yum-config-manager --enable mysql57-community
          如果命令无效,可以直接编辑 mysql repo。


    image.png
    4.2. 安装mysql服务

    yum install mysql-community-server

    中间有需要确认的步骤就一直 “y” 就行了。


    image.png
    image.png

    5.启动授权

    5.1.初始化数据库

    mysqld --initialize --console

    5.2.目录授权,否则启动失败

    chown -R mysql:mysql /var/lib/mysql/

    5.3 启动服务,测试连接

    启动:systemctl start mysqld.service
      停止:systemctl stop mysqld.service
      重启:systemctl restart mysqld.service
      查看服务状态:systemctl status mysqld.service

    6.基本连接配置

    1.在/var/log/mysqld.log下查看临时密码
    image.png
    2.临时密码登陆数据库修改密码
    mysql -u root -p + 回车键
    输入临时密码(输入时不会显示出来,输入完直接回车)
    alter USER 'root'@'localhost' IDENTIFIED BY '新密码(必须包含两者:数字大小写字母特殊字符)';
    
    image.png
    3.授权远程登陆
    查看所有用户是否可以远程连接,依次执行下列命令:
    show databases;
    use mysql;
    select host, user, authentication_string, plugin from user;
    
    image.png

    可以看到root用户的host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。注意在初始的时候只有在mysql数据库里才有这张表,其他数据库里面没有这张表,所以要切换到mysql数据库:

    4.修改root用户host值,使root用户可以远程登录
    update user set host = "%" where user='root';
    flush privileges;
    
    image.png

    5.创建用户

    1.创建用户
      命令:
        CREATE USER 'username'@'host' IDENTIFIED BY 'password';
      说明:
        username: 你将创建的用户名
        host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
        password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要  密码登陆服务器
      例子:
        CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
        CREATE USER 'quanran'@'192.168.1.101_' IDENDIFIED BY '123456';
        CREATE USER 'quanran'@'%' IDENTIFIED BY '123456';
        CREATE USER 'quanran'@'%' IDENTIFIED BY '';
        CREATE USER 'quanran'@'%';
    2.创建数据库
      create database `mmall` default character set utf8 collate utf8_general_ci;
    3.授权
      命令:
        GRANT privileges ON databasename.tablename TO 'username'@'host'
      说明:
        privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
        databasename:数据库名
        tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用  表示,如.*
      例子:
        GRANT SELECT, INSERT ON test.user TO 'quanran'@'%';
        GRANT ALL ON *.* TO 'quanran'@'%';
        GRANT ALL ON maindataplus.* TO 'quanran'@'%';
        Grant all privileges ON mmall.* to 'mmall'@'%';
      注意:
        用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
        GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
    
    #查看用户权限
      show grants for 'nextcloud'@'%'; 
      or
      select * from mysql.user where user='root' \G; 
    
    创建用户并授权
    解决mysql8报错:ERROR 1410 (42000): You are not allowed to create a user with GRANT:https://www.runoob.com/w3cnote/mysql8-error-1410-42000-you-are-not-allowed-to-create-a-user-with-grant.html
    4.设置与更改用户密码
      命令:
        SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
        如果是当前登陆用户用:
        SET PASSWORD = PASSWORD("newpassword");
      例子:
        SET PASSWORD FOR 'quanran'@'%' = PASSWORD("123456");
    5.撤销用户权限
      命令:
        REVOKE privilege ON databasename.tablename FROM 'username'@'host';
      说明:
        privilege, databasename, tablename:同授权部分
      例子:
        REVOKE SELECT ON *.* FROM 'quanran'@'%';
      注意:
        1.如果用 GRANT SELECT ON test.user TO 'quanran'@'%' 给用户’quanran’@’%‘授权,则使用 REVOKE SELECT ON . FROM 'quanran'@'%'; 并不能撤销该用户对test数据库中user表的SELECT 操作。
        2.如果用 GRANT SELECT ON . TO 'quanran'@'%'; 给’quanran’@’%'授权,则使用 REVOKE SELECT ON test.user FROM 'quanran'@'%'; 命令也不能撤销该用户对test数据库中user表的Select权限。
        3.具体信息可以用命令SHOW GRANTS FOR 'quanran'@'%'; 查看。
      
    6.删除用户
      命令:
        DROP USER 'username'@'host';
    
    image.png

    6.navicat连接mysql

    由于mysql8的加密方式和Navicat不一样,所以此时要想通过navicat访问数据库,需要添加下面的句子:

    alter user mmall identified with mysql_native_password by 'mmall';
    

    7.mysql配置文件修改

    vim /etc/my.cnf
    添加:
    character-set-server=utf8
    default-character-set=utf8
    
    image.png
    1.设置开机自启动

    --设置mysql开机自启动
    systemctl enable mysqld
    --查看系统当前默认启动项目的方法
    systemctl list-unit-files

    2.执行sql语句

    如果我们创建的用户数据库至允许在本地登陆,但是本地不能安装图形户界面如,navicat,此时我们就需要在命令行当中执行sql语句

    1.登陆数据库
    2.执行说起来语句
    mysql> source /developer/mmall.sql
    --/developer/mmall.sql是sql语句所在的位置
    
    登陆云主机
    image.png
    可以看到数据插入成功

    #######修改密码安全等级
    https://blog.csdn.net/qq_33454884/article/details/98853338

    相关文章

      网友评论

          本文标题:阿里云主机Centos7下安装mysql8

          本文链接:https://www.haomeiwen.com/subject/qxlqzctx.html