mysql基本操作及乱码问题

来源:互联网 发布:java collection 遍历 编辑:程序博客网 时间:2024/05/17 02:41
mysql://登录mysql数据库mysql -u用户名 -p密码//显示所有数据库show databases;//使用mysql数据库,这个是存储数据库用户和密码的user mysql;//把user中的主机名,用户,密码查询出来select host,user,password from user;//更改root用户的密码update user set password=password('roo') where user='root';//添加一个admin用户,并设置密码为:admininsert into user (host,user,password) values ('localhost','admin'password('admin');//创建一个orcl的数据库create database orcl;//把这个数据库的所有权限全部分配给admin用户,并设置访问密码为:admingrant all privileges on orcl.* to admin@localhost identified by 'admin';乱码的问题解决:----------------------------------------------//查看数据库使用的字符集编码show variables like 'character%';+----------------------+-----------------+| Variable_name        | Value           |+----------------------+-----------------+| collation_connection | utf8_general_ci | | collation_database   | utf8_general_ci | | collation_server     | utf8_general_ci | +----------------------+-----------------+3 rows in set (0.00 sec)----------------------------------------------show variables like 'collation%';+--------------------------+----------------------------+| Variable_name            | Value                      |+--------------------------+----------------------------+| character_set_client     | utf8                       | | character_set_connection | utf8                       | | character_set_database   | utf8                       | | character_set_filesystem | binary                     | | character_set_results    | utf8                       | | character_set_server     | utf8                       | | character_set_system     | utf8                       | | character_sets_dir       | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+8 rows in set (0.00 sec)修改编码:----------------------------------------------//修改collation%中的字符集编码为:utf-8set names 'utf8';或者set collation_connection = utf8_general_ci;上面两句等同set collation_connection = utf8_general_ci;set collation_database   = utf8_general_ci;set collation_server     = utf8_general_ci;//修改character%中的字符集编码为:utf-8set character_set_client = utf8;set character_set_connection= utf8;set character_set_database= utf8;set character_set_results= utf8;set character_set_server= utf8;//这个是只读的,修改失败。可能是权限不足set character_set_system= utf8;ERROR 1238 (HY000): Variable 'character_set_system' is a read only variable补救的方法:----------------------------------------------//这个是在没有修改编码之前已经建了数据库,而且也建了表,并且也输入了中文编码的数据;就是进行编码转换操作。注:orcl 为数据库users 为用户表  name 为表中的字段//更改数据库use orcl;//先修改数据库的字符集编码为:utf-8alter database orcl character set utf8;alter database character set utf8;  //不知为什么,不带名字也可以执行该条语句。//这个是修改该数据库下面的users表的字符集编码为:utf-8alter table users character set utf8;//这个是修改该users表的字段的字符集编码为:utf-8alter table users modify name varchar(20) character set utf8;  //下面写了那么多条语句,推荐使用条语句,毕竟比较简短。扩展知识:#这两条语句是等同的,上面的是对字段重命名并修改字段类型等,下面的语句只是修改字段的类型等;能达到同样的效果,实现的只是手段。alter table users change name name varchar(20) character set utf8;alter table users modify name varchar(20) character set utf8;#当然下面这两条语句和上面也是等同的,只不过是后面加了 collate 子句,加不加都不影响编码的修改。alter table users change name name varchar(20) character set utf8 collate utf8_general_ci;alter table users modify name varchar(20) character set utf8 collate utf8_general_ci;以上都是命令行操作,下面是在图形界面下的操作:----------------------------------------------//界面下的操作,有些地方修改起来比较麻烦,像之前已经建好的数据库的编码就不能修改,更不说数据库表中已经存在数据的编码,还是推荐命令行操作。修改/etc/mysql/my.cnf 或者 my.ini(Windows) 修改my.cnf文件sudo vi /etc/my.cnf在[client]下添加default-character-set=utf8在[mysqld]下添加default-character-set=utf8init_connect='SET NAMES utf8'修改完后,重启mysql的服务命令如下:service mysql restart (sudo service mysql restart)通过配置文件修改:修改/var/lib/mysql/mydb/db.optdefault-character-set=latin1default-collation=latin1_swedish_ci为default-character-set=utf8default-collation=utf8_general_ci重起MySQL:[root@bogon ~]# /etc/rc.d/init.d/mysql restart
原创粉丝点击