zoukankan      html  css  js  c++  java
  • 阿里云Linux下Mysql的安装和配置

    记录下在阿里云linux上安装与配置Mysql

    环境:阿里云ECS服务器,系统为centos7.2

    用户:root

    参考博客:https://blog.csdn.net/kunzai6/article/details/81938613 师兄的哈哈哈,还讲了很详细的新建用户和权限设置

         https://blog.csdn.net/qq_39005790/article/details/80017186

    删除原来的数据库:

    centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下:

    [root@localhost ~]# rpm -qa|grep mariadb  // 查询出来已安装的mariadb
    [root@localhost ~]# rpm -e --nodeps 文件名  // 卸载mariadb,文件名为上述命令查询出来的文件

    然后现在开始将当前目录切换到root也就是:    cd ~

    下载与安装MySQL:

    这里采用Yum管理好了各种rpm包的依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新。

    1.安装MySQL官方的yum repository

    [root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

    2.下载rpm包

    [root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

    3.安装MySQL服务

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

    最后会出现个complete!

    4.启动MySQL服务

    [root@localhost ~]# systemctl start  mysqld.service

    看到类似下面的界面,或者以Starting MySqL server..   started MysqlServer..结尾的就成功启动了

    还有几个关于MySQL常用的命令:

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

    还可以配置MySQL的开机启动:

    [root@woitumi-128 ~]# systemctl enable mysqld
    
    [root@woitumi-128 ~]# systemctl daemon-reload   刚刚配置的服务需要让systemctl能识别,就必须刷新配置

     关于登录MySQL:

    登录命令:

    [root@localhost ~]# mysql -u root -p

    意思就是用root用户登录,然后准备输入密码。

    第一次启动MySQL后,就会有临时密码,这个默认的初始密码在/var/log/mysqld.log文件中,我们可以用这个命令来查看:

    grep "password" /var/log/mysqld.log

    可是不知道是我输错密码还是不能复制粘贴,一直显示错误:

    (好吧后面看看这个代码应该是  mysql -u root -p才对,可能这样输入命令就不会有错吧……)

    然后我们还可以先跳过密码验证登录进MySQL:

    停止服务:

    systemctl stop mysqld.service

    修改mMySQL的配置文件:

    vi /etc/my.cnf

    在最后加上配置:

    skip-grant-tables

    然后再启动服务:

    systemctl start mysqld.service

    然后这时就可以跳过密码来登录mysql:

    mysql -u root

    然后是修改下密码:(就看别人的例子是这样的)

    mysql> use mysql;
    Database changed
    mysql> update mysql.user set authentication_string=password('4008') where user='root' ;
    Query OK, 1 row affected, 1 warning (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 1

    然后exit退出mysql,重新在刚刚那个配置文件中去掉skip-grant-tables,然后重启MySQL。

    然后就可以用新密码登录了:

    sql报错

    但这个时候,我试了一下一个简单的sql语句:

    what???我不是刚刚才设完密码吗??

    然后百度了下。说这个情况还要加个这样的改密码的语句:

    SET PASSWORD = PASSWORD('密码');

    但这个命令又出现了这样的问题:

    额百度后知道原来是密码等级太简单,如果你坚持要这样的密码,要改变密码等级:

    登录数据库后,输入

    mysql> set global validate_password_policy=0;  //改变密码等级
    
    mysql> set global validate_password_length=4;   //改变密码最小长度

    然后再输入刚刚的命令:

    SET PASSWORD = PASSWORD('密码');

    然后再用 show databases;就没有报错了

    配置远程登录:

    MySQL默认root用户只能本地登录,如果要远程连接,要简单设置下,这里直接用root来远程登录不添加其他角色。

    使用命令:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '4008' WITH GRANT OPTION;

    .*.的意思是所有库的所有表;To后面跟的是用户名;@后面跟的是ip地址,%代表所有ip地址,identified by后面的是密码。

    然后再:

    mysql> flush privileges;

    注意:

    需要注意mysql的配置文件中的bindaddress 的参数和skip-networking 配置

    bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值

    skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数

    添加3306端口:

    命令:

    firewall-cmd --zone=public --add-port=3306/tcp --permanent;

    结果说没有运行防火墙:

    那就先开防火墙咯:

    systemctl status firewalld  查看防火墙状态
    
    systemctl start firewalld  打开防火墙

     

    然后再输入那个开放3306端口的命令就行了

    firewall-cmd --zone=public --add-port=3306/tcp --permanent;
    
    firewall-cmd --reload  重启防火墙

    最后的收尾:

    1.我们刚开始说要写在yum的repository,用这个命令就行:

    yum -y remove mysql57-community-release-el7-10.noarch

    2.MySQL设一下utf8:

    打开/etc/my.cnf也就是数据库的配置文件,然后在底部复制粘贴:

    [mysqld] 
    
    character_set_server=utf8
    init_connect='SET NAMES utf8'

    采用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF-8 Unicode ,排序规则:utf8_general_ci

    3.阿里云的服务器中的安全组加入mysql连接的规则。这个很重要不然远程无法连接上。

    4.配置文件的说明:

      /etc/my.cnf 这是mysql的主配置文件
      /var/lib/mysql mysql数据库的数据库文件存放位置
      /var/log mysql数据库的日志输出存放位置

    本文转载自:https://www.cnblogs.com/wangshen31/p/9556804.html

  • 相关阅读:
    Redis学习笔记1:Redis介绍
    《设计模式之禅》读书笔记1:单一职责原则
    如何在Word中设置其中一页为横向(Office 2013)
    Linux CentOS7 升级内核的方法
    升级openSSH
    Windows服务器杀掉端口的方法
    Linux 安装zlib
    Linux升级openssl
    Linux下安装Perl 5
    Linux 安装gcc
  • 原文地址:https://www.cnblogs.com/zydeboke/p/11467095.html
Copyright © 2011-2022 走看看