• CentOS7和Ubuntu18.04不同系统如何搭建mysql服务


    Linux安装mysql

    本次安装Linux基于虚拟机CentOS7和Ubuntu18.04

    一.CentOS7安装mysql

    1.利用yum源来安装。mysql版本5.7.14
     yum -y install mysql57-community-release-el7-10.noarch.rpm

    如果出现以下错误:

    这是因为yum仓库中没有可用的mysql-server rpm包,可以执行如下命令进行下载

    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    下载成功:

    下载mysql-server

    yum -y install mysql-community-server
    2.配置、启动mysql

    1.查看mysql状态

    systemctl status mysqld

    systemctl status mysqld.service

    2.启动mysql

    systemctl start mysqld
    #然后继续查看mysql状态是否启动
    systemctl status mysqld

    3.查看mysql初始密码

    mysql默认必须修改密码之后才能操作数据库

    [root@centos software]# cat /var/log/mysqld.log |grep 'password'
    2020-11-23T03:24:57.885361Z 1 [Note] A temporary password is generated for root@localhost: TXgPuICyX8%k

    4.登录数据库

    mysql -u root -p
    #然后输入默认密码 TXgPuICyX8%k

    5.修改数据库登录密码

    mysql> alter user 'root'@'localhost' identified by 'root';
    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    

    报错原因是密码设置过于简单,mysql有密码设置的规范

    密码长度是由validate_password_length决定的,可以通过如下命令修改

    set global validate_password_length=LOW;
    

    查看mysql密码设置规范

    SHOW VARIABLES LIKE 'validate_password%';
    

    6.开启mysql的远程访问

    执行下面命令开启远程访问限制(下面命令开启的是IP是10.0.105.114,如果要开启所有的,用%代替IP),mysql默认是拒绝远程访问的。

    grant all privileges on *.* to 'root'@'10.0.105.114' identified by 'root' with grant option;
    

    7.开启防火墙端口,CentOS为firewalld添加开放端口3306

    1. 查看防火墙是否开启
    systemctl status firewalld

    firewall-cmd --state
    1. 如果防火墙是关闭状态,开启防火墙
    systemctl start firewalld
    1. 防火墙添加mysql开发端口3306
    [root@centos software]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    success

    4.防火墙配置立即生效

    [root@centos software]# firewall-cmd --reload
    success
    1. 查看防火墙所有开放的端口
    [root@centos software]# firewall-cmd --zone=public --list-ports
    3306/tcp
    1. 关闭开放端口
    [root@centos software]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent
    success

    需要重新加载防火墙配置,才能生效

    firewall-cmd --reload

    1. 如果要开放的端口太多,可以直接关闭防火墙,当然,安全性自行评估
    systemctl stop firewalld

    扩展

    1. 查看监听的端口
    netstat -lnpt
    1. 检查端口被哪个进程占用,如:
    [root@centos software]# netstat -lnpt |grep 9200
    tcp6       0      0 :::9200                 :::*                    LISTEN      1421/java 
    1. 查看进程的详细信息
    [root@centos software]# ps 1421
       PID TTY      STAT   TIME COMMAND
      1421 ?        Sl     1:01 /usr/java/jdk1.8.0_241/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfil
    3.设置编码
    vim /etc/my.cnf

    增加如下代码

    [client]
    default-character-set=utf8
    character-set-server=utf8
    collation-server=utf8_general_ci

    如图:

    重启mysql

    保存my.conf文件后,需要重启mysql,然后输入status查看

    #重启mysql
    systemctl restart mysqld

    登录进入mysql查看

    二.Ubuntu18.04安装mysql

    所有操作都是在root权限下进行

    1.从apt源下载mysql-server
    #默认会自行安装
    apt install -y mysql-server
    2.查看是否安装成功
    netstat -tap | grep mysql
    3.登录mysql
    #默认是没有密码,直接按`enter`回车键,就可以直接进入
    mysql -u root -p
    4.初始化数据库

    为了确保数据库的安全性和正常运行,建议进行如下5个步骤的设置

    • 安装验证密码插件
    • 设置root管理员在数据库中的登录密码
    • 删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性
    • 删除默认的测试数据库,取消测试数据库的一系列访问权限
    • 刷新授权列表,让初始化的设定立即生效
    mysql_secure_installation
    5.查看mysql运行状态
    service status mysql
    6.设置mysql可以远程访问
    #默认只允许本机访问
    vim /etc/mysql/mysql.conf.d/mysqld.cnf
    #注释掉 bind-address          = 127.0.0.1
    7.进行授权

    修改完上述配置文件,再次进入mysql数据库,进行授权

    #执行下面命令开启远程访问限制(下面命令开启的是IP是10.0.105.114,如果要开启所有的,用%代替IP),mysql默认是拒绝远程访问的。
    mysql>  grant all on *.* to root@'10.0.105.114' identified by 'root' with grant option; 
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    mysql>  flush privileges;  #刷新权限
    Query OK, 0 rows affected (0.00 sec)
    
    8.重启mysql
    systemctl restart mysqld
    9.验证本地访问远端mysql

    至此已完成mysql在CentOS7和Ubuntu18.04不同系统的搭建!!!!

  • 相关阅读:
    LeetCode#237 Delete Node in a Linked List
    数据库概念
    请基于 TCP/IP 五层网络模型描述下当我们在浏览器请求 https ://pp.io 站点时,发生了哪些事情
    高并发大流量
    mysql关于索引
    php基础——会话控制
    php基础——运算符知识
    php基础——常量及数据类型考察
    引用变量和cow机制
    关系基本特性的运算封闭性
  • 原文地址:https://www.cnblogs.com/MrAshin/p/14024717.html
Copyright © 2020-2023  润新知