关于mysql乱码的一些解决方法_MySQL
新建了一个库,默认编码。再导入utf8编码的表和数据。结果全是乱码。改sql文件的编码,还是不行。最后发现竟然是建库的时候没有设置utf8的编码。于是乎有了如下的的记录,问题得以解决。
建库:
CREATE DATABASE `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
另记录相关数据库操作:
导入sql文件
mysql -h localhost -u root -p mydbname
导出sql
mysqldump -h localhost -u root -p --default-character-set=utf8 mydbname > data.sql;
建表:
DROP TABLE IF EXISTS `mytablename`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `mytablename` (
`id` int(10) unsigned NOT NULL auto_increment,
`int10` int(10) unsigned NOT NULL,
`char2` char(2),
`varchar100` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;
插入数据:
LOCK TABLES `mytablename` WRITE;
INSERT INTO `mytablename` (`id`,`int10`,`char2`,`varchar100`) VALUES (1,123456,"ab","adsfsadf");
UNLOCK TABLES;
创建用户(设权限,密码)
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY '123456′;
GRANT ALL PRIVILEGES ON *.* TO 'user'@'127.0.0.1′ IDENTIFIED BY '123456′;
ALL PRIVILEGES 为所有权限,可选:select,insert,update,delete,create,drop等
*.* 表示:某个库.某个表
localhost为只能在本地登录,若为任意地点设为: %
修改密码:
mysqladmin -u root -p password 456789
查看所有用户:
select host,user from mysql.user;
最后,为了避免乱码的出现应该做到:文件编码+页面编码+数据库编码+应用服务器编码+操作系统编码统一。
作者 空云万里晴
推荐阅读
-
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
-
Mysql中分页查询的两个解决方法比较_php实例
-
php读取mysql中文数据出现乱码的解决方法_PHP教程
-
关于mysql一次自动插入2条数据出现的原因,和求解决办法
-
wamp下修改mysql访问密码的解决方法
-
关于MySQL5.7.18的下载以及安装过程的图文详解
-
php后台经常提示无法连接mysql 刷新后又可以访问的解决方法_MySQL
-
MySQL命令行乱码问题的解决_MySQL
-
mysql安装遇到的一些问题
-
mysql - 关于php函数addslashes的一些小疑问