經過window(Navicat)訪問linux中的mysql數據庫

Centos安裝Mysql數據庫

查看咱們的操做系統上是否已經安裝了mysql數據庫node

[root@centos~]# rpm -qa | grep mysql  // 這個命令就會查看該操做系統上是否已經安裝了mysql數據庫mysql

 

有的話,咱們就經過 rpm -e 命令 或者 rpm -e --nodeps 命令來卸載掉linux

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

[root@centos~]# rpm -e --nodeps mysql  // 強力刪除模式,若是使用上面命令刪除時,提示有依賴的其它文件,則用該命令能夠對其進行強力刪除shell

 

經過yum來進行mysql的安裝數據庫

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

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

 

查看剛安裝好的mysql-server的版本tomcat

[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; 備份數據庫:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename > database.sql 
相關文章
相關標籤/搜索