zoukankan      html  css  js  c++  java
  • 通过window(Navicat)访问linux中的mysql数据库

    Centos安装Mysql数据库

    查看我们的操作系统上是否已经安装了mysql数据库

    [root@centos~]# rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库

     

    有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉

    [root@centos~]# rpm -e mysql  // 普通删除模式

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

     

    通过yum来进行mysql的安装

    [root@centos~]# yum list | grep mysql

    [root@centos~]# yum install -y mysql-server mysql mysql-deve

     

    查看刚安装好的mysql-server的版本

    [root@centos~]# rpm -qi mysql-server

     

    注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置

    [root@centos~]# service mysqld start

     

    初始启动mysql之后再登录就会很快了

    [root@centos~]# service mysqld restart

     

    查看mysql服务是不是开机自动启动

    [root@centos~]# chkconfig --list | grep mysqld

    mysqld             0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭

     

    通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了

    [root@centos~]# chkconfig mysqld on

    [root@centos~]# chkconfig --list | grep mysql

    mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

     

    mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :

    [root@centos~]# /usr/bin/mysqladmin -u root password 'new-password'  // root账号设置密码

     

    注意:这个root账号是mysqlroot账号,非Linuxroot账号)

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

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

    Mysql数据库的主要配置文件

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

    [root@centosetc]# 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

     

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

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

    [root@centos~]# cd /var/lib/mysql/

    [root@centos mysql]# ls -l

    总用量 20488

    -rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1

    -rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0

    -rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1

    drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql  // 这两个是mysql数据库安装时默认的两个数据库文件

    srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock

    drwx------. 2 mysql mysql     4096 4月   6 21:59 test  // 这两个是mysql数据库安装时默认的两个数据库文件

     

    创建一个我们自己的数据库看一下

    mysql> create database ceshi001;

    Query OK, 1 row affected (0.00 sec)

     

    [root@centos mysql]# ls -l

    总用量 20492

    -rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1

    -rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0

    -rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1

    drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql

    srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock

    drwx------. 2 mysql mysql     4096 4月   6 21:59 test

    drwx------. 2 mysql mysql     4096 4月   6 22:15 ceshi001  // 这个就是我们刚自己创建的centos数据库

    [root@centos mysql]# cd xiaoluo/

    [root@centos ceshi001]# ls

    db.opt

     

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

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

    [root@centos ceshi001]# cd

    [root@centos ~]# cd /var/log

    [root@centos log]# ls

    amanda                cron           maillog-20130331   spice-vdagent.log

    anaconda.ifcfg.log    cron-20130331  mcelog             spooler

    anaconda.log          cups           messages           spooler-20130331

    anaconda.program.log  dirsrv         messages-20130331  sssd

    anaconda.storage.log  dmesg          mysqld.log         tallylog

    anaconda.syslog       dmesg.old      ntpstats           tomcat6

    anaconda.xlog         dracut.log     piranha            wpa_supplicant.log

    anaconda.yum.log      gdm            pm-powersave.log   wtmp

    audit                 httpd          ppp                Xorg.0.log

    boot.log              ibacm.log      prelink            Xorg.0.log.old

    btmp                  lastlog        sa                 Xorg.1.log

    btmp-20130401         libvirt        samba              Xorg.2.log

    cluster               luci           secure             Xorg.9.log

    ConsoleKit            maillog        secure-20130331    yum.log

     

    查看网络端口号为3306mysql数据库是否正在工作:

    [root@centos mysql]#netstat -anp|more

     使用Navicat连接Linux

    这样就完成了在Centos上安装mysql数据库的操作,之后打开本地window->cmdping一下linux地址看看是否能连上

     

    查看虚拟机IP192.168.38.128

         

    cmd窗口ping 192.168.38.128,出现如下界面说明是可以的  

      

    默认安装linux是只开通了22端口,不能通过3306端口让外界访问,首先要在mysql>中打开权限,在将iptables3306端口打开

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION; FLUSH PRIVILEGES;  // mysql控制台执行命令中的 ‘root’@’%’ 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;’MyPassword’是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限

    然后直接关闭防火墙也可以.

    mysql> flush privileges;

     

    检查虚拟机mysql的端口号是否对外开通

    比如我们能用xshell等远程工具连接虚拟机上的linux,是因为开放了22端口查看mysql的端口,在mysql命令行模式下执行以下命令就可以查看,查到的结果是3306

         mysql> show variables like '%port%';

      

      查看虚拟机的3306端口是否开放

      cmd下执行telnet 192.168.38.128 3306

      无法执行,别方,这是因为Windows telnet默认是关闭的

      

      按照红框提示开启telnet

      

      重新打开cmd窗口执行命令,结果是无法连接,这是因为虚拟机上的3306并没有对外开放,可以用22的试下效果就知道了

      

      开通虚拟机的3306端口  

      查看虚拟机防火墙的状态

      [root@centos~]# service iptables status

      可以看到目前只有22端口对外开放

      

      编辑防火墙文件打开3306端口

      [root@centos~]# vim /etc/sysconfig/iptables

      模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口  

      

      重启防火墙

      [root@centos~]# service iptables restart  // 可以看到3306已经开放

      

    打开Navicat,创建连接到虚拟机:

    报错:1045 Access denied for user 'centos-test@'%' (using password: YES)

      是因为在mysql>  GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "密码"; 设置的是所有linux中的root账户 ,而非centos-test账户

      mysql> flush privileges;

    解决办法:

      GRANT ALL PRIVILEGES ON *.* TO centos-test@"%" IDENTIFIED BY "密码"; // 通过该命令允许centos-test的所有账户通过密码来访问该数据库

      mysql> flush privileges;

     

    如果想通过cmd来访问mysql

    要在window下安装mysql操作台,然后远程连接虚拟机数据库访问

      端口都开启了,但还是连不上,看提示说明至少已经关联到mysql,不允许是因为权限不够

     

      我也不用root账号了,这里重新创建一个账号并赋予所有权限,之后让权限配置生效,在虚拟机上的mysql命令行模式下执行以下命令

        mysql> create user 'panda'@'%' identified by '123456';

        mysql> grant all on *.* to 'panda'@'%';

        mysql> flush privileges;

      然后重新连接DB

     

    附加题:

    将mysql目录下bin目录中的mysql.exe放到C:WINDOWS下,可以执行以下命令

    连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
    断开:exit (回车)


    创建授权:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
    修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
    删除授权: revoke select,insert,update,delete om *.* from test2@localhost;


    显示数据库:show databases;
    显示数据表:show tables;
    显示表结构:describe 表名;


    创建库:create database 库名;
    删除库:drop database 库名;
    使用库:use 库名;


    创建表:create table 表名 (字段设定列表);
    删除表:drop table 表名;
    修改表:alter table t1 rename t2
    查询表:select * from 表名;
    清空表:delete from 表名;
    备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql
    恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操作前先把原来表删除)


    增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
    修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
    删除列:ALTER TABLE t2 DROP COLUMN c;


    备份数据库:mysqlinmysqldump -h(ip) -uroot -p(password) databasename > database.sql

     

  • 相关阅读:
    设计模式之一 简单工厂模式
    PowerShell_7_零基础自学课程_7_Powershell中重定向机制、目录和文件管理
    PowerShell_2_零基础自学课程_2_Powershell与Cmd以及Unix/Linux Shell
    PowerShell_3_零基础自学课程_3_如何利用Powershell ISE调试PS脚本
    (转)越狱的 iPhone、iPad 通过网站实现一键安装 ipa 格式的 APP 应用
    (转)直接拿来用!最火的Android开源项目(二)
    (转)iOS编程高性能之路-自动化编译脚本(2)
    (转)iOS编程高性能之路-自动化编译脚本(1)
    (转)How to Install Xcode, Homebrew, Git, RVM, Ruby & Rails on Snow Leopard, Lion, and Mountain Lion
    (转)直接拿来用!最火的Android开源项目(一)
  • 原文地址:https://www.cnblogs.com/xiapu5150/p/9183384.html
Copyright © 2011-2022 走看看