MySQL經常使用操做

mysql設置密碼

mysql默認沒有密碼,因此有必要設置一個密碼
mysqladmin -uroot password '123456'
mysql -uroot -p123456
更密碼
mysqladmin -uroot -p123456 password 222222 mysql

mysql重置密碼

/usr/local/mysql/bin/mysql -uroot
更改環境變量PATH,增長mysql絕對路徑
密碼重置
vi /etc/my.cnf//增長skip-grant
重啓mysql服務 /etc/init.d/mysqld restart
mysql -uroot
use mysql;
update user set password=password('111222') where user='root';
mysql> select password from user; 查看
第二個password表示一個函數('111222')就是新設置的密碼,改完密碼後再把skip-grant去掉

mysql登錄

1本地登陸的方式式:
mysql -uroot -p111222

2用sockt登陸:(只適合本機)
mysql -uroot -p333333 -S/tmp/mysql.sock
當本地有多個mysql時,可使用socket去登陸

3遠程登陸的方式:(好比登陸另一臺linux的mysql)
mysql -uroot -h127.0.0.1 -P3306 -p111222  

mysql -uroot -p123456 -e 「show databases」  這種方式能夠用在腳本里

MySQL經常使用命令

查詢庫 show databases;
切換庫 use mysql;
查看庫裏的表 show tables;
查看錶裏的字段 desc tb_name;
查看建表語句 show create table tb_name\G;
查看當前用戶 select user();
查看當前使用的數據庫 select databsase();
mysql> create database aming;    建立一個庫
mysql> create table tb1 (`id` int(4), `name` char(40)) ENGINE=MyISAM DEFAULT CHARSET=gbk;    建立表:id和name上面的引號是反引號,Esc下面的鍵
mysql> create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT CHARSET=UTF8;   建立表時指定引擎和字符集
mysql> show create table tb1\G;  查看tb1的建立語句
mysql> insert into tb1 values(1,'aming');   給表裏面插入一些數據
由於有兩個字段id和name,因此要分開寫id是1,name由於是char因此aming要加單引號
mysql> show variables;   查看全部的參數
mysql> show variables like '%timeout';   查看指定的某個參數%是通配的意思
mysql> set global max_connect_errors=1000;    修改參數,若是要重啓仍是1000,要修改、/etc/my.cnf的配置文件
mysql> show processlist;      查看隊列,至關於ps 和top,查看當前mysql在幹什麼,那些用戶在鏈接它,有沒有鎖表就用這個命令看
mysql> show full processlist;    查看完整的隊列
mysql> truncate table aming.tb1;   清空一個表可是不刪除表
mysql> drop table tb1;   刪除表
mysql> drop database db1;     刪除庫
mysql> select * from tb1;
mysql> select version;     查看數據庫的版本

MySQL建立用戶以及受權

grant all on *.* to 'user1' identified by 'passwd';
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';
grant all on db1.* to 'user3'@'%' identified by 'passwd';
show grants;
show grants for user2@192.168.133.1;   查看指定用戶的受權

撤銷已經賦予給 MySQL 用戶權限的權限。

revoke 跟 grant 的語法差很少,只須要把關鍵字 「to」 換成 「from」 便可:
grant  all on *.* to   dba@localhost;
revoke all on *.* from dba@localhost;

MySQL grant、revoke 用戶權限注意事項

1. grant, revoke 用戶權限後,該用戶只有從新鏈接 MySQL 數據庫,權限才能生效。
2. 若是想讓受權的用戶,也能夠將這些權限 grant 給其餘用戶,須要選項 「grant option「
grant select on testdb.* to dba@localhost with grant option;
這個特性通常用不到。實際中,數據庫權限最好由 DBA 來統一管理。

經常使用SQL語句

select count(*) from mysql.user;
select * from mysql.db;
select db from mysql.db;
select db,user from mysql.db;
select * from mysql.db where host like '192.168.%';
insert into db1.t1 values (1, 'abc');
update db1.t1 set name='aaa' where id=1;   針對db1庫t1表 把id=1的name更新成aaa
truncate table db1.t1;
drop table db1.t1;
drop database db1;

MySQL數據庫的備份與恢復

備份庫  mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
恢復庫 mysql -uroot -p123456 mysql < /tmp/mysql.sql
備份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
恢復表 mysql -uroot -p123456 mysql < /tmp/user.sql
備份全部庫 mysqldump -uroot -p -A >/tmp/123.sql
只備份表結構 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
相關文章
相關標籤/搜索