Ubuntu Mysql 常用指令
mysql 常用指令及中文乱码解决
Mysql 系统管理指令
- 登陆本地 Mysql
mysql -u username -p # 回车输入密码
或者 mysql -u username -p passswd;
- 登陆远程 Mysql
mysql -h address -u username -p # 回车输入密码
或者 mysql -h address -u username -p passswd;
- 修改新密码
mysql> use mysql;
mysql> update user set password=PASSWORD(‘newpasswd’) where user=’username’;
mysql> flush privileges; #更新权限
mysql> quit; #退出
- 增加新用户
mysql> grant select on database_name.* to user@address identified by ‘passwd’
ex: 增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有 查询、插入、修改、删除的权限。
- mysql> grant select,insert,update,delete on . to root@localhost identified by 'mysql';
- or mysql> grant all privileges on . to root@localhost identified by 'mysql';
- mysql> flush privileges;
ex: 不希望 root 有密码操作数据库“mydb”里的数据表,可以再打一个命令将密码消掉
- mysql> grant select,insert,update,delete on mydb.* to root@localhost identified by '';
- 删除用户
mysql> delete from user where user='user_name' and host='address';
mysql> flush privileges;
mysql> drop database dbname; #删除用户的数据库
数据库导入导出(mysqldump)
- 导出所有数据库
mysqldump -u user -p -A > backup_file_path
- 导出数据和数据结构
mysqldump -u user -p database_name_need_to_backup > backup_file_path
ex00: export database mydb
mysqldump -h localhost -u root -p mydb > ./mydb.sql
ex01: export database mydb mytable
mysqldump -h localhost -u root -p mydb mytable > ./mytable.sql
ex02: export database mydb framework
mysqldump -h localhost -u root -p mydb –add-drop-table > ./mydb_stru.sql
- 只导出数据不导出数据结构
mysqldump -u user -p -t database_name_need_to_backup > backup_file_path
- 导出数据库中的Events
mysqldump -u user -p -E database_name_need_to_backup > backup_file_path
- 导出数据库中的存储过程和函数
mysqldump -u user -p -R database_name_need_to_backup > backup_file_path
- 从外部文件导入数据库中
- 使用“source”命令
mysql > source path_of_backup_file
- 使用“<”符号
mysql -u root –p < path_of_backup_file
Mysql 常用指令
- 查看所有数据库
mysql> show databases;
- 选择要操作数据库
mysql> use database_name;
- 查看当前数据库下所有表
mysql> show tables;
- 获取表结构
mysql> desc table_name;
或者 mysql> show columns from table_name;
- 创建一个数据库
mysql> create database database_name;
- 删除一个数据库
mysql> drop database database_name;
- 创建一个表
mysql> create table table_name( uid bigint(20) not null, uname varchar(20) not null);
- 删除一个表
mysql> drop table table_name;
- SQL插入语句
mysql> insert into table_name(col1, col2) values(value1, value2);
- SQL更新语句
mysql> update tablename set col1='value1', col2='value2' where wheredefinition;
- SQL查询语句
mysql> select * from table_name where....... #(最复杂的语句)
- SQL删除语句
mysql> delete from table_name where...
- 增加表结构的字段
mysql> alert table table_name add column field1 date, add column field2 time ...
- 删除表结构的字段
mysql> alert table table_name drop field1;
- 查看表的结构
mysql> show columns from table_name;
- limit 的使用
mysql> select * from table_name limit 3; #每页只显示3行
mysql> select * from table_name limit 3,4; #从查询结果的第三个开始,显示四项结果。 此处可很好的用来作分页处理。
- 对查询结果进行排序
mysql> select * from table_name order by field1, orderby field2; #多重排序
- 查看字符编码
mysql> show variables like 'character%' ;
Ubuntu mysql中文乱码解决
- 打开配置文件
sudo vim /etc/mysql/my.cnf
- 找到[mysqld]添加
character-set-server = utf8
- 重启mysql
/etc/init.d/mysql restart 或者 service mysql restart