zoukankan      html  css  js  c++  java
  • 通过yum安装mysql数据

    1. 卸载掉原有mysql

    因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库 

    # rpm -qa | grep -i mysql  // 通过这句命令查看你的服务器上是否安装mysql

    [root@richie log]# rpm -qa | grep -i mysql 
    mysql-5.1.73-8.el6_8.x86_64
    mysql-libs-5.1.73-8.el6_8.x86_64
    perl-DBD-MySQL-4.013-3.el6.x86_64
    mysql-server-5.1.73-8.el6_8.x86_64
    

      显示安装了 前面几个包,我们停止mysqld

    # service mysqld stop

    删除命令:

    如果有的话 我们可以通过rpm -e 或rpm -e --nodeps 命令卸载原来的额mysql

    # rpm -e mysql      // 普通删除mysql的方式

    # rpm -e mysql   --nodeps   // 强制删除mysql的方式 如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

    rpm -ev mysql-5.1.73-8.el6_8
    rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64 等等....

     找到之前版本mysql目录,并删除mysql老版本 mysql的文件和库

    find / -name mysql 
    
    /var/lib/mysql
    /var/lib/mysql/mysql
    /usr/lib64/mysql
    

      删除对应的mysql目录

    rm -rf /var/lib/mysql
    rm -rf /var/lib/mysql
    rm -rf /usr/lib64/mysql
    

      有时候卸载后/etc/my.cnf 不会删除 需要进行手工删除

    rm -rf /etc/my.cnf
    

      

    如果删除完成  我们可以通过前面的命令查看是否删除成功。

    rpm -qa |grep -i mysql

    没有表示已经彻底删除了,接下来直接安装mysql即可。

    2. 配置yum源 更新yum

    首先备份/etc/yum.repos.d/CentOS-Base.repo

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

    下载对应版本repo文件, 放入/etc/yum.repos.d/(操作前请做好相应备份)

    运行以下命令生成缓存

    yum clean all
    yum makecache
    yum update
    

    3、通过yum来进行mysql的安装

    我是通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本:

    # yum list | grep mysql

    就可以得到yum服务器上mysql数据库的可下载版本信息:

      一般查看到的都是mysql 5.1

    然后我们可以通过输入 yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)

    # yum install -y mysql-server mysql mysql-deve
    

      此时我们可以通过如下命令,查看刚安装好的mysql-server的版本

    # rpm -qi mysql-server
    

      我们安装的mysql-server并不是最新版本,如果你想尝试最新版本,那就去mysql官网下载rpm包安装就行了,至此我们的mysql数据库已经安装完成了。

    4 . mysql数据库的初始化及相关配置

    我们在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个是你的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。

    注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置,我们会看到第一次启动服务器会出现很多的提示信息,,目的是为了对我们的mysql数据库进行初始化。

    后面再启动就不会有太多的信息:

    [root@richie yum.repos.d]# service mysqld start
    Starting mysqld:                                           [  OK  ]
    

      配置mysql数据库 开机启动:

      首先通过 chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动

    [root@richie yum.repos.d]# chkconfig --list | grep mysqld
    mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off

      我们发现我们的mysqld 服务没有开机启动 ,可以通过 chkconfig mysqld on 设置在可用的启动模式开始此服务。

    [root@richie yum.repos.d]# chkconfig mysqld on
    [root@richie yum.repos.d]# chkconfig --list | grep mysqld                           
    mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
    

      在初始化mysql的时候我们可以看到 

    /usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码
    

      [root@richie~]# mysqladmin -u root password 'root'  // 通过该命令给root账号设置密码为 root

    此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了

    5 mysql 数据库的主要配置文件

    1./etc/my.cnf 这是mysql的主配置文件

    我们可以查看一下这个文件的一些信息

    [root@richie etc]# ls my.cnf 
    my.cnf
    [root@richie etc]# cat my.cnf 
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

      2。 /var/lib/mysql   mysql数据库的数据库文件存放位置

    我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下

    [root@richie etc]# cd /var/lib/mysql/
    [root@richie mysql]# ls -l
    total 20488
    -rw-rw---- 1 mysql mysql 10485760 Jan  5 15:08 ibdata1
    -rw-rw---- 1 mysql mysql  5242880 Jan  5 15:08 ib_logfile0
    -rw-rw---- 1 mysql mysql  5242880 Jan  5 15:08 ib_logfile1
    drwx------ 2 mysql mysql     4096 Jan  5 15:08 mysql
    srwxrwxrwx 1 mysql mysql        0 Jan  5 15:08 mysql.sock
    drwx------ 2 mysql mysql     4096 Jan  5 15:08 test
    

      我们可以自己创建一个数据库,来验证一下该数据库文件的存放位置

    [root@richie mysql]# mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.1.73 Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> create database richie
        -> ;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> q
    Bye
    [root@richie mysql]# ls -l
    total 20492
    -rw-rw---- 1 mysql mysql 10485760 Jan  5 15:08 ibdata1
    -rw-rw---- 1 mysql mysql  5242880 Jan  5 15:08 ib_logfile0
    -rw-rw---- 1 mysql mysql  5242880 Jan  5 15:08 ib_logfile1
    drwx------ 2 mysql mysql     4096 Jan  5 15:08 mysql
    srwxrwxrwx 1 mysql mysql        0 Jan  5 15:08 mysql.sock
    drwx------ 2 mysql mysql     4096 Jan  5 15:13 richie
    drwx------ 2 mysql mysql     4096 Jan  5 15:08 test
    

      3. /var/log mysql数据库的日志输出存放位置

    我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下

    [root@richie mysql]# cd /var/log/
    [root@richie log]# ls
    audit           cron        ecs_network_optimization.log  messages            nginx     spooler
    boot.log        dmesg       httpd                         multi-nic-util      ntp.log   tallylog
    btmp            dmesg.old   lastlog                       mysqld.log          ntpstats  wtmp
    cloud-init.log  dracut.log  maillog 
    

      

    其中mysqld.log 这个文件就是我们存放我们跟mysql数据库进行操作而产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息

    因为我们的mysql数据库是可以通过网络访问的,并不是一个单机版数据库,其中使用的协议是 tcp/ip 协议,我们都知道mysql数据库绑定的端口号是 3306 ,所以我们可以通过 netstat -anp 命令来查看一下,Linux系统是否在监听 3306 这个端口号:

    [root@richie log]# netstat -anp|more
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program na
    me   
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      13648/mysqld  
          
    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1843/httpd    
          
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2291/sshd     
          
    tcp        0     96 172.17.101.172:22           122.71.240.33:1449          ESTABLISHED 2128/sshd     
          
    tcp        0      0 172.17.101.172:40014        106.11.68.13:80             ESTABLISHED 1322/AliYunDun
          
    udp        0      0 0.0.0.0:68                  0.0.0.0:*                               1094/dhclient 
          
    udp        0      0 0.0.0.0:68                  0.0.0.0:*                               739/dhclient  
          
    udp        0      0 172.17.101.172:123          0.0.0.0:*                               2320/ntpd     
          
    udp        0      0 127.0.0.1:123               0.0.0.0:*                               2320/ntpd     
          
    udp        0      0 0.0.0.0:123                 0.0.0.0:* 
    

      结果如上所示,Linux系统监听的3306端口号就是我们的mysql数据库!

    6 。阿里云ECS自检数据库远程连接问题

    购买阿里云ecs服务器后,很多人会选择自己搭建系统,有的人会选择云数据库,有的人会用自己搭建的数据库,但是自己搭建完成后,用navicat想要连接的自己的数据库时,却发生了这样的错误

      

    这是由于远程IP没有登录权限,root用户默认只能在localhost也就是只能在本机登录,需要设置允许其他IP登录权限。

    解决方法:

    在服务器内部登录数据库,然后执行:

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

    表示让所有的ip都能访问该数据库,并操作数据库的任何对象。

    其中:

    *.* 第一个*是指数据库

    *代表所有数据库

    第二个*指数据库对象

    *代表数据库中所有对象

     'root'@'%' root是制定要授权的数据库用户

    %代表允许登录的IP (如:1.1.1.1)

    123456是你的数据库密码

    执行完毕后执行 flush privileges; 刷新权限即可登录。

  • 相关阅读:
    服务器设计之请求处理框架[转]
    为 Linux 应用程序编写 DLL[转]
    C语言编程技巧-signal(信号)[转]
    __thread关键字[转]
    iOS打电话、发短信、发邮件功能
    apple swift 初探
    cocos2d-x 3.x build 问题
    如何在WebApi中使用过滤器实现面向切面编程(AOP)
    Web API相对WCF优势,以及构建WebApi
    mvc中利用Attribute特性来进行进行简单的登陆验证
  • 原文地址:https://www.cnblogs.com/richiewlq/p/8204866.html
Copyright © 2011-2022 走看看