Mysql預設是不允許遠端連線的,因為有很大的安全隱患。
需要手動增加可以遠端存取資料庫的使用者。
方法一、本地登入mysql,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,將"localhost"改為"%"
#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
方法二、直接授權(推薦)
從任何主機上使用root使用者,密碼:youpassword(你的root密碼)串連到mysql伺服器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
允許地址202.11.10.253上用root使用者,密碼dboomysql來串連mysql的所有資料庫,付給select,insert,update,delete許可權。
# mysql -u root -proot
grant select,insert,update,delete on *.* to root@"202.11.10.253" Identified by "dboomysql";
允許地址202.11.10.253上用root使用者,密碼dboomysql來串連mysql的所有資料庫,付給所有許可權。
# mysql -u root -proot
grant all on *.* to root@"202.11.10.253" Identified by "dboomysql"
重啟Mysql服務後,這樣就可用圖形化資料庫管理軟體(Navicat MySQL是個不錯的選擇)遠端存取Mysql
mysql技巧總結
1.修改mysql中root的密碼:
shell>mysql -u root -p
mysql>SET PASSWORD FOR root=PASSWORD("root");
2.遠程登入mysql server:(當然server必須首先給某個遠端使用者授權了)
shell>mysql -h host -u user -p
3.開啟資料庫:use dbname;
顯示所有資料庫:show databases;
顯示資料庫mysql中所有的表:先use mysql;然後show tables;
顯示表的列資訊:describe user;(顯示表mysql資料庫中user表的資訊);
4.建立一個可以從任何地方串連伺服器的一個完全的超級使用者,但是必須使用一個口令something做這個
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
5.刪除授權:
REVOKE ALL PRIVILEGES ON *.* FROM root@"%";
USE mysql;
DELETE FROM user WHERE User="root" and Host="%";
FLUSH PRIVILEGES;
6. 建立一個使用者custom在特定用戶端weiqiong.com登入,可訪問特定資料庫bankaccount
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.*
TO custom@weiqiong.com IDENTIFIED BY 'stupid';
7.重新命名表:
ALTER TABLE t1 RENAME t2;
為了改變列a,從INTEGER改為TINYINT NOT NULL(名字一樣),
並且改變列b,從CHAR(10)改為CHAR(20),同時重新命名它,從b改為c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一個新TIMESTAMP列,名為d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一個索引,並且使列a為主鍵:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
刪除列c:
ALTER TABLE t2 DROP COLUMN c;
增加一個新的AUTO_INCREMENT整數列,命名為c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我們索引了c,因為AUTO_INCREMENT柱必須被索引,並且另外我們聲明c為NOT NULL,
因為索引了的列不能是NULL。
8.刪除記錄:
DELETE FROM t1 WHERE C>10;
6.改變某幾行:
UPDATE t1 SET user=weiqiong,password=weiqiong;
7.使用name列的頭10個字元建立一個索引:
CREATE INDEX part_of_name ON customer (name(10));