查看是否有安裝數據庫 :rpm -qa|grep -i mysqlhtml
如圖已安裝:mysql
未安裝:sql
1 在終端下執行 mysql -V數據庫
2 在help中查找 mysql --help |grep Distrib安全
3 在mysql 裏查看 select version();服務器
4 在mysql 裏查看 status;數據結構
mysql -h localhost -u 用戶名 -p密碼 //連接數據庫
use desk_show; //使用數據庫
show tables; //顯示數據表
describe desk6_0; //顯示錶結構架構
經過rpm查看ide
查看軟件是否安裝函數
首先咱們須要查看軟件是否已經安裝,或者說查看安裝的軟件包名稱。如查找是否安裝mysql
接着根據 rpm -ql 列出軟件包安裝的文件
使用 rpm -qal |grep mysql 查看mysql全部安裝包的文件存儲位置
Yum查找
除了rpm 查詢還能夠經過yum search 查找對應能夠安裝的軟件包
其餘查找方法
除了根據軟件包來找文件位置以外,最經常使用的就是經過find查找某個關鍵字好比mysql全部包含mysql服務的文件路徑
Which查找命令
Which命令是經過 PATH環境變量查找可執行文件路徑,用於查找指向這個命令所在的文件夾
Whereis命令和find相似,不過不一樣的是whereis是經過本地架構好的數據庫索引查找會比較快。若是沒有更新到數據庫裏面的文件或命令則沒法查找到信息
mysql其餘命令:
show databases; 顯示數據庫
create database name; 建立數據庫
use databasename; 選擇數據庫
執行命令source /root/20151010.sql
drop database name 直接刪除數據庫,不提醒
show tables; 顯示錶
describe tablename; 顯示具體的表結構
select 中加上distinct去除重複字段
mysqladmin drop databasename
刪除數據庫前,有提示。
顯示當前mysql版本和當前日期
select version(),current_date;
root密碼管理
設置root用戶的密碼 mysqladmin -uroot password 'password'
修改root用戶的密碼 mysqladmin -uroot -p password 'password'
數據庫,表管理
進入mysql mysql -h hostname -uroot -p
建立數據庫 mysql> create database location
導入數據結構 mysql -uroot -p location <./location.sql
查看數據庫 mysql> show databases;
進入某個庫 mysql> use location;
查看錶信息 mysql> show tables;
查看錶結構 mysql> desc Contact;
改表名 mysql> rename table Contact to Contact_new
刪除庫 mysql> drop database location
刪除表 mysql> drop table Contact
受權部分
創建用戶並受權 mysql> grant all on location.* to gk1020@'10.1.11.71' identified by 'gk1020'
取消受權 mysql> revoke all on location.* from gk1020@'10.1.11.71'
刷新權限 mysql> flush privileges
操做語句
查詢 mysql> select * from Contact
mysql> select count(*) from Contact
修改 mysql> update Contact set RegTime=‘2008-01-01 00:00:00’ where id=1
mysql> update Contact set RegTime=‘2008-01-01 00:00:00’,CID=1 where id=1
插入 mysql> insert into Contact values('',''…)
mysql> insert into Contact(ID,CID,Contact) values('',''…)
刪除 mysql> delete from Contact where id=1
備份數據庫location mysqldump -uroot -p -l location >./location.sql
備份某個表 mysqldump -uroot -p -l --database location --table Contact >./contact.sql
導出數據庫location的數據結構 mysqldump -d -uroot -p location >./location.sql
恢復數據庫:mysql -uroot -p location < location.sql
備份數據文件和sql文件分離:mysqldump -uroot -p location contact -T backup/
導出數據: select * from contact into outfile 'contact.txt';
恢復sql文件:cat contact.sql | mysql -uroot -p location
導入數據(要跟絕對路徑) mysqlimport -uroot -p zhang /usr/local/mysql/var/backup/contact.txt
複製表 複製表Contact爲Contact_bak mysql> create table Contact_bak as select * from Contact
複製表Contact的結構 mysql> create table Contact_bak as select * from Contact where 1=2
查看正在執行的任務 mysql> show processlist
kill正在執行的任務 mysqladmin -uroot -p kill process_id
查看錶狀態:mysql> check table Contact or mysqlcheck -uroot -p -c location Contact
修復表: mysql> repair table Contact or mysqlcheck -uroot -p -r location Contact
優化表: mysql> optimize table Contact or mysqlcheck -uroot -p -o location Contact
———————————————-庫操做———————————————-
1.①導出一個庫結構
mysqldump -d dbname -u root -p > xxx.sql
②導出多個庫結構
mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql
2.①導出一個庫數據
mysqldump -t dbname -u root -p > xxx.sql
②導出多個庫數據
mysqldump -t -B dbname1 dbname2 -u root -p > xxx.sql
3.①導出一個庫結構以及數據
mysqldump dbname1 -u root -p > xxx.sql
②導出多個庫結構以及數據
mysqldump -B dbname1 dbname2 -u root -p > xxx.sql
———————————————-表操做———————————————-
4.①導出一個表結構
mysqldump -d dbname1 tablename1 -u root -p > xxx.sql
②導出多個表結構
mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
5.①導出一個表數據
mysqldump -t dbname1 tablename1 -u root -p > xxx.sql
②導出多個表數據
mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
6.①導出一個表結構以及數據
mysqldump dbname1 tablename1 -u root -p > xxx.sql
②導出多個表結構以及數據
mysqldump -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
————————————–存儲過程&函數操做————————————-
7.只導出存儲過程和函數(不導出結構和數據,要同時導出結構的話,須要同時使用-d)
mysqldump -R -ndt dbname1 -u root -p > xxx.sql
———————————————-事件操做———————————————-
8.只導出事件
mysqldump -E -ndt dbname1 -u root -p > xxx.sql
—————————————–觸發器操做——————————————–
9.不導出觸發器(觸發器是默認導出的–triggers,使用–skip-triggers屏蔽導出觸發器)
mysqldump --skip-triggers dbname1 -u root -p > xxx.sql
————————————————————————————————
10.導入
mysql -u root -p
use game;
source xxx.sql
————————————————————————————————
總結一下:
-d 結構(--no-data:不導出任何數據,只導出數據庫表結構)
-t 數據(--no-create-info:只導出數據,而不添加CREATE TABLE 語句)
-n (--no-create-db:只導出數據,而不添加CREATE DATABASE 語句)
-R (--routines:導出存儲過程以及自定義函數)
-E (--events:導出事件)
--triggers (默認導出觸發器,使用--skip-triggers屏蔽導出)
-B (--databases:導出數據庫列表,單個庫時可省略)
--tables 表列表(單個表時可省略)
①同時導出結構以及數據時可同時省略-d和-t
②同時 不 導出結構和數據可以使用-ntd
③只導出存儲過程和函數可以使用-R -ntd
④導出全部(結構&數據&存儲過程&函數&事件&觸發器)使用-R -E(至關於①,省略了-d -t;觸發器默認導出)
⑤只導出結構&函數&事件&觸發器使用 -R -E -d
PS:若是可使用相關工具,好比官方的MySQL Workbench,則導入導出都是極爲方便的,以下圖。(固然爲了安全性,通常狀況下都是屏蔽對外操做權限,因此須要使用命令的狀況更多些)
導入遇到問題 ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes
使用Navicat For Mysql備份建新數據庫的時候,表導入不了,查看日誌,有腳本報錯,原來是文件大於16M所致
報錯信息以下:ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes。
因而調整配置文件: /etc/my.cnf
修改mysql的最大容許包大小
在[mysqld]部分(不在這部分沒用)添加一句:
max_allowed_packet=50M
重啓mysql服務就能夠了。
重啓命令以下:
1、啓動方式
一、使用 service 啓動:service mysqld start
二、使用 mysqld 腳本啓動:/etc/inint.d/mysqld start
三、使用 safe_mysqld 啓動:safe_mysqld&
2、中止
一、使用 service 啓動:service mysqld stop
二、使用 mysqld 腳本啓動:/etc/inint.d/mysqld stop
三、mysqladmin shutdown
3、重啓
一、使用 service 啓動:service mysqld restart
二、使用 mysqld 腳本啓動:/etc/inint.d/mysqld restart
遷移服務器,要把舊服務器上的mysql數據複製到新服務器的mysql上。
我先是把舊服務器的數據庫用mysqldump複製了一份,而後想導入到新服務器,用命令導入,結果提示
網上說的方案,我在命令行加上--max_allowed_packet=128M
mysql --max_allowed_packet=128M -u user -ppass database < database.sql
結果仍是提示 Got a packet bigger than 'max_allowed_packet' bytes
而後我又嘗試用MysqlWorkBench客戶端導入,仍是提示 Got a packet bigger than 'max_allowed_packet' bytes 。
實在太奇怪了,明明這個.sql文件只有82K啊!
mysql -u root -p -e "set global net_buffer_length=1000000; set global max_allowed_packet=1000000000;"
而後重啓 mysqld, 再正常導入就能夠了……