连接数据库:

$ mysql -h hostname -u username -p
Enter password:(输入该用户密码) 

查看数据库:

SHOW DATABASES;

创建数据库:

CREATE DATABASE db_name;

删除数据库:

DROP DATABASE db_name;

数据库授权:

GRANT ALL PRIVILEGES ON blogs_mcucode.* TO mcucode@localhost;

将数据库blogs_mcucode的所有表(*)的所有权限(ALL PRIVILEGES),赋予用户mcucode@localhost.

取消授权:

REVOKE ALL PRIVILEGES ON blogs_mcucode.* FROM 'username'@'localhost';

查看当前数据库中的数据表:

SHOW TABLES;

新建数据表:

CREATE TABLE pet(
name VARCHAR(20), 
owner VARCHAR(20),
species VARCHAR(20), 
sex CHAR(1), 
birth DATE, 
death DATE);

新建数据表:
指定ID为主键,并且自动递增。

CREATE TABLE users (
  id int(4) NOT NULL AUTO_INCREMENT,
  username varchar(20) NOT NULL,
  password varchar(64),
  PRIMARY KEY  (`id`)
);

删除数据表:

DROP TABLE pet;

清空数据表:

TRUNCATE TABLE mytable;

重名名数据表

RENAME TABLE old_name to new_name;

查看数据表字段:

DESCRIBE pet;

增加字段

ALTER TABLE tb_name ADD age INT, ADD address VARCHAR(11); 

删除字段

ALTER TABLE tb_name DROP COLUMN age, DROP COLUMN address; 

修改字段类型

ALTER TABLE tb_name MODIFY age VARCHAR(10);

修改字段名称(必须重新指定该字段的类型)

ALTER TABLE tb_name CHANGE age ages INT;

调整id字段放在第1列:

ALTER TABLE tb_name MODIFY id INT FIRST;

调整password字段在username字段之后:

ALTER TABLE tb_name MODIFY password VARCHAR(20) AFTER username;

增加自增ID字段:

ALTER TABLE tb_name ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY;  

重建自增ID方法: 删除重新建立该字段;


新建带密码用户:

CREATE USER 'username' IDENTIFIED BY 'password';

新建不带密码用户:

CREATE USER 'username'

或者直接对用户数据库操作:

INSERT INTO 
mysql.user (host,user,password) 
values("localhost","username",password("123456"));

查看用户:

SELECT user,host,password FROM mysql.user;

删除用户:

DROP USER user1 [, user2];

修改用户密码(mysql命令):

SET PASSWORD [FOR username]=PASSWORD("123456"); 

注意事项:

1.不带[FOR ....]参数表示修改自己的密码;

2.必须用函数PASSWORD对密码进行加密;

3.管理员修改普通用户密码后需执行刷新权限操作;

修改用户密码(系统命令):

$mysqladmin -u username -p password(newpasswd)
Enter password: (输入原始密码即可)

刷新权限

FLUSH PRIVILEGES; 

部分操作完成后,需要刷新权限才生效(具体命令列表待续)
1.管理员用户更改普通用户密码;


数据库导入

# mysql -u root -p dbname<dbdata.sql
Enter password:(输入该用户密码) 

数据库导出

# mysqldump -u root -p dbname>dbdata.sql
Enter password:(输入该用户密码) 

数据表导入CVS数据

load data infile '/var/files.csv'   
into table ids 
fields terminated by ','  
optionally enclosed by '"' 
escaped by '"'   
lines terminated by '\r\n';

数据表导出CVS数据

SELECT * FROM test_info  
INTO OUTFILE '/tmp/test.csv'  
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY '"'  
LINES TERMINATED BY '\r\n';

命令说明:

(1)字段之间以逗号分隔;
(2)字符串以半角双引号包围
(3)字符串本身的双引号用两个双引号表示
(4)数据行之间以\r\n分隔;

从文件中加载数据(类似于CVS)

LOAD DATA LOCAL INFILE '/path/pet.txt' 
INTO TABLE pet LINES TERMINATED BY '\r\n';

删除前缀相同的数据表
数据库名称database_name,前缀boblog;

SELECT CONCAT('DROP TABLE', GROUP_CONCAT(table_name) , ';' ) 
AS statement FROM information_schema.tables 
WHERE table_schema = 'database_name' AND table_name LIKE 'boblog%';

这样会生成一条删除语句,复制后执行即可;

文章摘要:
本文描述Mysql数据库存实现外网访问的方法,


设置外网访问数据库: 基于安全考虑,一般不建议数据库外网直连,但既然有此功能,所以在一定场合,还是很有用的。

1.修改配置文件

$sudo vim /etc/mysql/my.cnf

把bind-address参数的值改成你的内/外网IP或0.0.0.0,或者直接注释掉这行.

2.更新host

$mysql -u root -p
mysql> use mysql;
mysql> select user,host from user;
mysql> update user set host='%' where user='dachun';
mysql> flush privileges;

这里重点在host='%'这里

3.授权用户

mysql> GRANT ALL PRIVILEGES ON *.* TO 'dachun'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> flush privileges;

4.修改iptables允许数据库端口(3306)

#iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

请输入图片描述