zoukankan      html  css  js  c++  java
  • centos7 安装MySQL

    在centos7中已经将mysql从yum应用列表中移除,并使用mariadb代替,所以直接通过yum install mysql-server安装时会提示没有可用软件包mysql-server。在centos7中安装mysql需要重新添加mysql的存储库。本文参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

    1、添加MySQL Yum存储库

    首先要将mysql yum存储库添加到yum源目录中/etc/yum.repos.d/,不需要手动添加。按照以下步骤来即可。

    ①获取下载连接,在这个页面中找到最新的下载连接。 https://dev.mysql.com/downloads/repo/yum/   不要下载错版本啦(可看下边图片)。不知道可以通过命令查看 uname -a

    ② 安装下载的rpm包,这一步会自动将mysql yum存储库添加到yum源目录中

    [root@mini ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
    
    [root@mini ~]# yum localinstall mysql80-community-release-el7-1.noarch.rpm
    
    # 经过上边两个步骤后可以发现 /etc/yum.repos.d/ 目录下多了两个文件
    # mysql-community.repo   mysql-community-source.repo

     

    2、安装MySQL 

     经过上边的步骤后就可以直接安装mysql了

    1)选择mysql的版本,安装最新版请忽略这一步。我选的mysql5.7,最新的8.0

    vi 修改 /etc/yum.repos.d/mysql-community.repo 文件,选择想要安装的版本将 enabled=1,将其它版本改为enabled=0,如下图

    2) 安装mysql

    [root@mini ~]# yum install mysql-community-server

    3)启动mysqld服务,启动服务后查看服务的状态,

    [root@mini ~]# systemctl start mysqld   # 启动服务
    [root@mini ~]# systemctl status mysqld  # 查看服务状态

    4)查看密码,安装后会有一个初始密码,在mysql日记文件中,/var/log/mysqld.log,如下,u37jyNpeq#bW就是我的初始密码

    [root@mini ~]# grep 'temporary password' /var/log/mysqld.log
    2018-10-16T08:52:56.573201Z 1 [Note] A temporary password is generated for root@localhost: u37jyNpeq#bW

    5)修改密码,以数据库root用户登录mysql,修改密码,一定要修改密码,不修改无法对数据库进行操作。实现的默认密码策略validate_password要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。修改密码后刷新权限表

    [root@mini ~]# mysql -u root -p   #  第一次登录mysql,密码为初始密码
    Enter password: 
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'abcdABCD-1';  # 修改密码
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;

    3、设置编码为utf-8

    1)可先在mysql中查看自己的编码是否为utf-8,是的就不用在设置了

    mysql> show variables like "%character%";show variables like "%collation%";
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    8 rows in set (0.01 sec)
    
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.00 sec)

    2)在 /etc/my.cnf 文件中的 [mysqld]  标签下添加

    character-set-server=utf8
    collation-server=utf8_general_ci

    3)重启mysqld服务  systemctl restart mysqld

    [root@mini ~]# systemctl restart mysqld

    4)再次登录myslq查看编码就结束了

    4、允许远程登录

    mariadb默认是拒绝 root 远程登录的。这里用的是 navicat 软件连接数据库

    1)关闭防火墙

    ① 关闭防火墙 systemctl stop firewalld 

    systemctl stop firewalld

    ② 在不关闭防火墙的情况下,允许某端口的外来链接。步骤如下,开启3306端口,重启防火墙

    [root@mini ~]# firewall-cmd --query-port=3306/tcp  # 查看3306端口是否开启
    no
    [root@mini ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent  # 开启3306端口
    success
    [root@mini ~]# firewall-cmd --reload  # 重启防火墙
    success
    [root@mini ~]# firewall-cmd --query-port=3306/tcp  # 查看3306端口是否开启

    2)先查看mysql数据库中的user表

    [root@mini ~]# mysql -u root -p  # 先通过本地链接进入数据库
    
    MariaDB [(none)]> use mysql;
    
    MariaDB [mysql]> select host, user from user;
    +-----------+------+
    | host      | user |
    +-----------+------+
    | 127.0.0.1 | root |
    | ::1       | root |
    | mini      | root |
    +-----------+------+
    rows in set (0.00 sec)

    3)将与主机名相等的字段改为 "%" ,我的主机名为mini,这里就只是数据表的更新操作而已,按照自己的来就行

    MariaDB [mysql]> update user set host='%' where host='mini';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    MariaDB [mysql]> select host, user from user;
    +-----------+------+
    | host      | user |
    +-----------+------+
    | %         | root |
    | 127.0.0.1 | root |
    | localhost | root |
    +-----------+------+
    rows in set (0.00 sec)

    4)刷新权限表,或重启mariadb服务,一下二选一即可

    MariaDB [mysql]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    [root@mini ~]# systemctl restart mariadb

    5)到这里就可以通过工具连接MySQl数据库了。

  • 相关阅读:
    《ucore lab1 exercise2》实验报告
    《ucore lab1 exercise1》实验报告
    《Tsinghua os mooc》第21~22讲 文件系统
    《Tsinghua os mooc》第17~20讲 同步互斥、信号量、管程、死锁
    《Tsinghua os mooc》第15~16讲 处理机调度
    《Tsinghua os mooc》第11~14讲 进程和线程
    《Tsinghua oc mooc》第8~10讲 虚拟内存管理
    bzoj3188 [Coci 2011]Upit(分块)
    P4514 上帝造题的七分钟(二维树状数组)
    bzoj3156 防御准备(斜率优化)
  • 原文地址:https://www.cnblogs.com/yhongji/p/9799240.html
Copyright © 2011-2022 走看看