linux下mysql数据库常用命令以及中文乱码问题的解决

时间:2021-07-31 22:29:16

登录数据库:mysql -u 用户名 -p,然后输入密码即可;进入数据库后会显示mysql命令行。接下来介绍常用命令:
1,显示数据库列表:show databases;
2,创建数据库:create database ###;
3,使用某数据库:use ###;
4,显示所有数据表:show tables;
5,创建数据表:create table ** ;
6,显示数据表结构:describe **;
7,删除数据库、表:drop database ###;drop table **;
8,清空记录但不删除:delete from **;
9,查找:select * from **;
10,从txt文档中导入数据:load data infile ‘文件名’ into table **;
注意这里的文件名一定要和数据表名相同,而且该文件要放在数据库的文件夹中,我的路径是/var/lib/mysql/###;
11,导出数据库:在命令行中输入:mysqldump -u用户名 -p密码 ###>###.sql
12,给数据库添加一个自增式主键:alter table ** add id int not null auto_increment primary key first;
接下来说一下中文乱码的问题,之前遇到一个问题就是查询数据库中记录时显示为乱码或者全是问号,我的解决办法是把编码方式改为utf-8,我建议最好重新建一个数据库,一切都重头开始:
1,建立数据库时指定其编码方式:CREATE DATABASE ### DEFAULT CHARACTER SET ‘utf8’ COLLATE ‘utf8_general_ci’;
2,建立数据表式也指定编码方式,虽然我觉得这一步有点多余,但保险起见可以加上:
CREATE TABLE ** (IDvarchar(40) NOT NULL default '',UserID` varchar(40) NOT NULL default ”, ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个设置好之后,基本就不会出问题了,即建库和建表时都使用相同的编码格式。建好之后可以通过以下语句查询编码方式:
mysql> show variables like “%char%”;
显示结果如下:

+--------------------------+---------------+  
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+

除了character_set_filesystem为binary之外,其他几项都应为utf-8,如果显示某一项不是utf-8的话可以通过以下命令修改:
SET character_set_client=’utf8’;(client可以修改为其他项)
到这里我遇到的情况就解决了,如果你还有问题可以参考一下下面这篇文章,他记录的较为全面Mysql中文乱码

这里在介绍一个最最完美的解决办法,那就是修改mysql的配置文件,即/etc/mysql/my.cnf。

#在client字段下添加或修改default-character-server为utf8
[client]
default-character-set = utf8
#在mysql字段下添加或修改default-character-set为utf8
[mysql]
default-character-set=utf8
#在mysqld字段下添加或修改default-character-server为utf8
[mysqld]
character-set-server=utf8

修改完之后在重启数据库即可,在新建数据库。

/etc/init.d/mysql restart
或者
service mysql restart