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用户,并设置密码为:admin insert into user (host,user,password) values ('localhost','admin'password('admin'); //创建一个orcl的数据库 create database orcl; //把这个数据库的所有权限全部分配给admin用户,并设置访问密码为:admin grant 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-8 set 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-8 set 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-8 alter database orcl character set utf8; alter database character set utf8; //不知为什么,不带名字也可以执行该条语句。 //这个是修改该数据库下面的users表的字符集编码为:utf-8 alter table users character set utf8; //这个是修改该users表的字段的字符集编码为:utf-8 alter 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=utf8 init_connect='SET NAMES utf8' 修改完后,重启mysql的服务 命令如下: service mysql restart (sudo service mysql restart) 通过配置文件修改: 修改/var/lib/mysql/mydb/db.opt default-character-set=latin1 default-collation=latin1_swedish_ci 为 default-character-set=utf8 default-collation=utf8_general_ci 重起MySQL: [root@bogon ~]# /etc/rc.d/init.d/mysql restart
mysql基本操作及乱码问题
最新推荐文章于 2024-08-19 22:23:29 发布