这个应该是数据库的数据类型不一致导致的
追问:
怎么说类型不一致?那种类型?我是数据库小白,请教回答:
你提到了字符集是GBK 那你上传的数据库的字符集呢?追问:
应该是gbk,要不就是gb2312,没有utf8我到出的时候,几个网站的数据都一起导出的,一个sql文件。回答:
几个网站的数据?一个库就一个SQL吧追问:
恩啊,我用phpmyadmin里面导出的,里面放着好几个站的数据,我导出的时候全选的,所以都导到一个文件里面去了。现在让分开我都分不开了,不会,全部导进去就出现这个错误。 回答:
……你这几个站的数据到底是个什么概念,几个数据库,还是就是一个数据库吗?追问:
phpmyadmin知道吧,里面都可以放n个网站,我导出的时候,不是一个网站一个数据库导出的,而且全选所有网站导出的。我想应该是几个网站几个数据库,我导出就只得到一个localhostsql文件,40M多。回答:
囧,你说几个网站有意义吗,直接说是几个数据库不就明白了麽。你检查下几个数据库的编码字符集追问:
先别囧呢,怎么检查呢?我现在还都不会分离呢,检查都不会,菜鸟一枚。嘿嘿。所有数据都在localhostsql这个文件里面,以前数据应该不是gbk就是gb2312 回答:
你直接上phpmyadmin去看数据库结构啊追问:
大哥啊,里面全是英文,我看不懂!回答:
追问:
汗……你这个不是登陆phpmyadmin的页面吗?我知道里面有中文的,我也选择的是这个,我想知道的是怎么会出现这个问题,还有怎么解压分离数据库。 回答:
一般#1273 - Unknown collation: ''这个错误的出现是因为字符集的问题,有可能是你的MYSQL没有安装utf8的字符集如果错误是#1273 - Unknown collation: 'gbk_unicode_ci'将phpMyAdmin目录下的configincphp删除掉就可以解决了追问:
我这个问题是因为选择字符集“gbk”和“gb2312”出现的,可是,当我选择“utf8”的时候是出现以下的问题:SQL 查询: CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
MySQL 返回: #1007 - Can't create database 'test'; database exists 弄得我郁闷不已。回答:
#1007 - Can't create database 'test'; database exists 不能创建数据库'test';数据库已存在追问:
我查过,但是不敢删了,怕删了就出错了。等着我实在找不到办法就把数据库里面的都删了,看看再倒入看看能不能行。不管咋样,谢谢你了O(∩_∩)O~ 回答:
反正保留备份就好,不怕数据丢失
1、优化设计的技巧
(1) 如果一个字段需要经常更改,则采用以空间换时间的设计方法
最常见的例子是用户积分登录次数的累加,按照范式设计,在users表中建立一个字段us_scores,以后需要在用户积分改变时采用update的语句进行修改。但是知道 update语句的执行速度是很慢的,为了避免大量重复使用它,优化的设计方案是建立us_scores表,存储每次增加的积分,在查询是采用SQL语句的sum方法来计算之。
(2) 关联字段类型尽可能定义为数字类型
(3) 表的序列字段必须是数字类型
(4) 若数据库有移植的可能性,不使用存储过程及触发器
(5) 建立恰当的索引
索引的建立是加快数据库查询的基本技巧之一,通常的建议是,只有百万级的记录的表格才应该建立索引。
,命名都应该作为非常重要的事情来看待,表、序列、字段、索引的命名技巧可以归结如下:
(1) 关联字段名称必须相同,名称以基础表的字段名称为准
(2) 序列名字跟表字段名字相同
(3) 关联表的名称应该是被关联的表用“_”连接起来组成的
(4) 字段定义的前两位是表名的缩写,第三位是下划线
一,保证规范,序列名称必须是唯一的,而且,一般的序列就是这个表的id字段。如果不加前缀,那么字段都叫做id就会违背惟一性原则。
第二,为了将来关联查询语句的书写方便。
(5) 索引的名字和表的名字相同
(6) 常用字段采用固定定义
为了提高大数据量的表格的查询速度,可以采用建立适当的索引方式。如果一个表只有一个索引,建议索引的名字跟表相同,如果有多个索引,则为表名称加下划线加索引列名称。
最安全的设计方案是,Web数据库和测试数据库分离。Web数据库权限只被管理员一个人掌握。
关于MySQL数据库设计
的优化措施还需要经过数据库设计人员的不断发掘,从数据库设计中不断的发现问题,提出解决问题的方法,才能将数据库的性能优化的更好更全面。
主从复制理论上支持无穷大的从库个数,实际情况下,受服务器带宽和读写能力的影响
请参考MySQL官方手册的建议:
理论上,通过使用单个主服务器/多从服务器设置,可以通过添加更多的从服务器来扩充系统,直到用完网络带宽,或者你的更新负载已经增长到主服务器不能处理的点。
在获得的收益开始吃平之前,为了确定可以有多少从服务器,以及可以将你的站点的性能提高多少,需要知道查询模式,并且要通过基准测试并根据经验确定一个典型的主服务器和从服务器中的读取(每秒钟读取量,或者max_reads)吞吐量和写(max_writes)吞吐量的关系。通过一个假设的带有复制的系统,本例给出了一个非常简单的计算结果。
假设系统负载包括10%的写和90%的读取,并且我们通过基准测试确定max_reads是1200_2×max_writes。换句话说,如果没有写 *** 作,系统每秒可以进行1,200次读取 *** 作,平均写 *** 作是平均读 *** 作所用时间的两倍,并且关系是线性的。我们假定主服务器和每个从服务器具有相同的性能,并且我们有一个主服务器和N个从服务器。那么,对于每个服务器(主服务器或从服务器),我们有:
reads=1200_2×writes
reads=9×writes/(N1)(读取是分离的,但是写入所有服务器)
9×writes/(N1)2×writes=1200
writes=1200/(29/(N1))
最后的等式表明了N个从服务器的最大写 *** 作数,假设最大可能的读取速率是每分钟1,200次,读 *** 作与写 *** 作的比率是9。
如上分析可以得到下面的结论:
·如果N=0(这表明没有复制),系统每秒可以处理大约1200/11=109个写 *** 作。
·如果N=1,每秒得到184个写 *** 作。
·如果N=8,每秒得到400个写 *** 作。
·如果N=17,每秒得到480个写 *** 作。
您好,很高兴为您解答。
1、下载安装软件:请认准百正规软件下载
2、安装navicat for mysql(注意一下插件的自定义选择)
3、连接数据库:
打开navicat for mysql之后找到,文件----新建连接
4、连接参数填写
在出现的连接设置里面,有很多选项都是针对需要连接的数据库的账号信息
连接名:可以任意填写,方便以后识别区分即可
主机名或IP: 填写服务器的主机名(必须要能解析的)或者服务器IP地址,如果是本机可 以填写localhost 或 127001
端口:默认是3306 如果修改了其他端口,需要对应
密码:就是用户名root密码或者其他mysql用户的密码
5、设置好连接数据库的参数之后,点击下方的“连接”出现“连接成功”即设置成功
6、数据库管理:连接上数据库之后,在左侧会显示当前mysql所有的数据库。点击对应的数据库,能查看当前数据库下面的表
7、添加删除数据库:如果需要添加删除数据库的话,很简单选择需要 *** 作的数据库,鼠标右键选择 *** 作即可
8、添加删除表:同样对于数据库下方的表,如果要新建的话点击选择 表---新建
对于新建的表,名和类型都可以手动输入指定选择。设置好之后,点击保存输入表名即可完成 *** 作
9、点击添加好的表,或数据库的表。双击之后右侧会列出当前表的详细列项目和属性
如何使用命令行
虽然是图形化管理工具,但是对于很多 *** 作其实还是需要SQL命令会更加方便。进入sql命令行界面,点击“工具”--“命令列界面”
随后在右下方空白区域进入了SQL命令行界面, *** 作方法和普通进入mysql命令行界面一样使用命令。如果需要清除当前屏幕内容,可以点击“清除”即可
其他功能
对于之前数据库已经导出的sql文件,或者写好的sql命令语句。可以通过选择需要导入的数据库,或表 右键选项“运行sql文件”
~ O(∩_∩)O~
以上就是关于MySQL 返回: #1273 - Unknown collation: ''全部的内容,包括:MySQL 返回: #1273 - Unknown collation: ''、如何保证数据安全性 MySQL数据库设计优化技巧、mysql主从同步如何同步已有的数据,(mysql数据库主从同步原理)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)