c********1 发帖数: 421 | 1 MySQL的问题实在太多。
1. 一台机器上的数据库,里面有中文信息,死活无法成功导入到另一台机器上
的mysql,总显示乱码。修改了所有的设置都无用,不是这种乱码就是另外一种乱码。
2,另外一个DB,用phpMyAdmin生成导出.sql文件,在导入另一台机器上时
报错there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT
or ON UPDATE clause
仔细检查.sql文件,发现只有一列是用的ON UPDATE CURRENT_TIMESTAMP
其它的列连 on UPDATE / DEFAULT 语句都没有
后来才知道,该表中有2列均为timestamp,其中之一设了ON UPDATE
CURRENT_TIMESTAMP, 另外一列虽然没有设ON UPDATE CURRENT_TIMESTAMP
也没有设DEFAULT,但mysql在建表时会自动加上DEFAULT CURRENT_TIMESTAMP
………无耻!………自己加上 DEFAULT 0就可以了
3,在linux机器上初次安装完mysql并设root密码之后,需要运行mysqladmin时
所有的命令行必须带-p 参数。否则就会
access denied for user 'root'@'localhost' (using password: NO)
问题是,linux其它的命令如果带-p参数,那么后面接的一般是密码
但MySQL不是,-p的密码并不是inline的,而是需要在敲command之后另外再输入
-p后面可以带DB名称,但不能带密码!
4,在stored procedure中,如果用@命名,那么该变量必须是内部变量,而不是
外部传入的parameter
举例:set @foo = 1; 是对的
但CREATE PROCEDURE `bar`(IN `@foo` INT) 中的@foo就是错的,
必须要去掉这里的"@"符号
当然,相比起Apache/Linux/PHP的嘈点,Mysql的嘈点还算是少的
Developer其实大部分时间都是用于config和operation上了。吐血………… |
w**z 发帖数: 8232 | 2 能google 找到答案的都不能算问题。
DEFAULT
【在 c********1 的大作中提到】 : MySQL的问题实在太多。 : 1. 一台机器上的数据库,里面有中文信息,死活无法成功导入到另一台机器上 : 的mysql,总显示乱码。修改了所有的设置都无用,不是这种乱码就是另外一种乱码。 : 2,另外一个DB,用phpMyAdmin生成导出.sql文件,在导入另一台机器上时 : 报错there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT : or ON UPDATE clause : 仔细检查.sql文件,发现只有一列是用的ON UPDATE CURRENT_TIMESTAMP : 其它的列连 on UPDATE / DEFAULT 语句都没有 : 后来才知道,该表中有2列均为timestamp,其中之一设了ON UPDATE : CURRENT_TIMESTAMP, 另外一列虽然没有设ON UPDATE CURRENT_TIMESTAMP
|
c********1 发帖数: 421 | 3 2,3,4在我发这篇贴子之前,都无法用google找到答案
1到现在都没有找到答案
谢谢
【在 w**z 的大作中提到】 : 能google 找到答案的都不能算问题。 : : DEFAULT
|
d****i 发帖数: 4809 | 4 MySQL已经是最小白最好用的DB了,如果你用过Oracle或者DB2之类的大型商用数据库的
话,恐怕会吐槽更多。关于1,你看看是否可以这样修改:
vi /etc/mysql/my.cnf
在[mysqld]下面,加上以下两行看看行不行
# charset setting
character-set-server = utf8
character-set-filesystem = utf8
DEFAULT
【在 c********1 的大作中提到】 : MySQL的问题实在太多。 : 1. 一台机器上的数据库,里面有中文信息,死活无法成功导入到另一台机器上 : 的mysql,总显示乱码。修改了所有的设置都无用,不是这种乱码就是另外一种乱码。 : 2,另外一个DB,用phpMyAdmin生成导出.sql文件,在导入另一台机器上时 : 报错there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT : or ON UPDATE clause : 仔细检查.sql文件,发现只有一列是用的ON UPDATE CURRENT_TIMESTAMP : 其它的列连 on UPDATE / DEFAULT 语句都没有 : 后来才知道,该表中有2列均为timestamp,其中之一设了ON UPDATE : CURRENT_TIMESTAMP, 另外一列虽然没有设ON UPDATE CURRENT_TIMESTAMP
|
c********1 发帖数: 421 | 5 试过,没用
【在 d****i 的大作中提到】 : MySQL已经是最小白最好用的DB了,如果你用过Oracle或者DB2之类的大型商用数据库的 : 话,恐怕会吐槽更多。关于1,你看看是否可以这样修改: : vi /etc/mysql/my.cnf : 在[mysqld]下面,加上以下两行看看行不行 : # charset setting : character-set-server = utf8 : character-set-filesystem = utf8 : : DEFAULT
|
c********1 发帖数: 421 | 6 这个我强烈同意
【在 d****i 的大作中提到】 : MySQL已经是最小白最好用的DB了,如果你用过Oracle或者DB2之类的大型商用数据库的 : 话,恐怕会吐槽更多。关于1,你看看是否可以这样修改: : vi /etc/mysql/my.cnf : 在[mysqld]下面,加上以下两行看看行不行 : # charset setting : character-set-server = utf8 : character-set-filesystem = utf8 : : DEFAULT
|
m***t 发帖数: 254 | 7 人笨怪刀钝。 show create table一下看看default charset是不是用latin1.
DEFAULT
【在 c********1 的大作中提到】 : MySQL的问题实在太多。 : 1. 一台机器上的数据库,里面有中文信息,死活无法成功导入到另一台机器上 : 的mysql,总显示乱码。修改了所有的设置都无用,不是这种乱码就是另外一种乱码。 : 2,另外一个DB,用phpMyAdmin生成导出.sql文件,在导入另一台机器上时 : 报错there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT : or ON UPDATE clause : 仔细检查.sql文件,发现只有一列是用的ON UPDATE CURRENT_TIMESTAMP : 其它的列连 on UPDATE / DEFAULT 语句都没有 : 后来才知道,该表中有2列均为timestamp,其中之一设了ON UPDATE : CURRENT_TIMESTAMP, 另外一列虽然没有设ON UPDATE CURRENT_TIMESTAMP
|
c********1 发帖数: 421 | 8 不好意思,早就用过这招了
不知道您老是笨,还是您的刀钝,还是两者都是?
【在 m***t 的大作中提到】 : 人笨怪刀钝。 show create table一下看看default charset是不是用latin1. : : DEFAULT
|
m***t 发帖数: 254 | 9 现在还能mysql utf8搞不定弄出乱码来, 只能是你笨了。
【在 c********1 的大作中提到】 : 不好意思,早就用过这招了 : 不知道您老是笨,还是您的刀钝,还是两者都是?
|
o***g 发帖数: 2784 | 10 其他问题,不清楚
1的话,你需要先把数据倒到某个语言里,确定都是unicode的了再往新数据库里倒
旧的里面有可能不知道什么乱七八糟的编码,需要在程序里过一遍
DEFAULT
【在 c********1 的大作中提到】 : MySQL的问题实在太多。 : 1. 一台机器上的数据库,里面有中文信息,死活无法成功导入到另一台机器上 : 的mysql,总显示乱码。修改了所有的设置都无用,不是这种乱码就是另外一种乱码。 : 2,另外一个DB,用phpMyAdmin生成导出.sql文件,在导入另一台机器上时 : 报错there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT : or ON UPDATE clause : 仔细检查.sql文件,发现只有一列是用的ON UPDATE CURRENT_TIMESTAMP : 其它的列连 on UPDATE / DEFAULT 语句都没有 : 后来才知道,该表中有2列均为timestamp,其中之一设了ON UPDATE : CURRENT_TIMESTAMP, 另外一列虽然没有设ON UPDATE CURRENT_TIMESTAMP
|
|
|
w**z 发帖数: 8232 | 11 are you sure about 3 ? default root has no password.
-ppassword, I use it all the time.
【在 c********1 的大作中提到】 : 2,3,4在我发这篇贴子之前,都无法用google找到答案 : 1到现在都没有找到答案 : 谢谢
|
c********1 发帖数: 421 | 12 呵呵,不是“现在”,而是一个legacy的数据库
You made too much assumption, 成天觉得这个笨,那个笨,
你聪明,你来搞定呀呵呵,就一个legacy数据的导入,搞定我给你$500
你看你能不能在半小时内搞定,这样你的hourly rate 就是$1000
嫌少?没关系,你可以开价。
不过如果 你加了价还是搞不定,呵呵呵呵
【在 m***t 的大作中提到】 : 现在还能mysql utf8搞不定弄出乱码来, 只能是你笨了。
|
m***t 发帖数: 254 | 13 你要搞不定就把数据倒到一个staging db, 把access发给我。 给你看看什么问题。
【在 c********1 的大作中提到】 : 呵呵,不是“现在”,而是一个legacy的数据库 : You made too much assumption, 成天觉得这个笨,那个笨, : 你聪明,你来搞定呀呵呵,就一个legacy数据的导入,搞定我给你$500 : 你看你能不能在半小时内搞定,这样你的hourly rate 就是$1000 : 嫌少?没关系,你可以开价。 : 不过如果 你加了价还是搞不定,呵呵呵呵
|
B*****g 发帖数: 34098 | 14 亲,oracle不要太简单了,lol
【在 d****i 的大作中提到】 : MySQL已经是最小白最好用的DB了,如果你用过Oracle或者DB2之类的大型商用数据库的 : 话,恐怕会吐槽更多。关于1,你看看是否可以这样修改: : vi /etc/mysql/my.cnf : 在[mysqld]下面,加上以下两行看看行不行 : # charset setting : character-set-server = utf8 : character-set-filesystem = utf8 : : DEFAULT
|
d****i 发帖数: 4809 | 15 亲,beijing美眉,给你跪了,我们这里的oracle DBA整天抱怨oracle难用,看来是他
们太猪了,哈哈
【在 B*****g 的大作中提到】 : 亲,oracle不要太简单了,lol
|
t***t 发帖数: 6066 | 16 问题在于,用oracle的时候遇到的问题绝大部分是自己不会,用mysql时遇到的问题有
相当一部分是它的bug,而且往往是无数年前就有的bug,一直不fix。俺当年用mysql半
年,快被恶心死。有的十几年老的bug也不fix。
【在 d****i 的大作中提到】 : MySQL已经是最小白最好用的DB了,如果你用过Oracle或者DB2之类的大型商用数据库的 : 话,恐怕会吐槽更多。关于1,你看看是否可以这样修改: : vi /etc/mysql/my.cnf : 在[mysqld]下面,加上以下两行看看行不行 : # charset setting : character-set-server = utf8 : character-set-filesystem = utf8 : : DEFAULT
|
c********1 发帖数: 421 | 17 都说了。legacy的数据库,而且数据库目前的那个owner十分不配合......
只给我发了一个broken的.sql
【在 m***t 的大作中提到】 : 你要搞不定就把数据倒到一个staging db, 把access发给我。 给你看看什么问题。
|
l******h 发帖数: 405 | |
c*********e 发帖数: 16335 | 19 en,所以,当一个程序员把lamp四个部分连起来之后,就像修地铁打通了地洞,老板就
会把这个程序员赶走,找个做维护的慢慢继续写。
DEFAULT
【在 c********1 的大作中提到】 : MySQL的问题实在太多。 : 1. 一台机器上的数据库,里面有中文信息,死活无法成功导入到另一台机器上 : 的mysql,总显示乱码。修改了所有的设置都无用,不是这种乱码就是另外一种乱码。 : 2,另外一个DB,用phpMyAdmin生成导出.sql文件,在导入另一台机器上时 : 报错there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT : or ON UPDATE clause : 仔细检查.sql文件,发现只有一列是用的ON UPDATE CURRENT_TIMESTAMP : 其它的列连 on UPDATE / DEFAULT 语句都没有 : 后来才知道,该表中有2列均为timestamp,其中之一设了ON UPDATE : CURRENT_TIMESTAMP, 另外一列虽然没有设ON UPDATE CURRENT_TIMESTAMP
|
g*****g 发帖数: 34805 | 20 我老人家教你一个foot proof的方案吧。就mysql workbench连到旧的和新的数据库上
,在GUI确认中文读写都没问题。如果都没问题,那就是导出导入出问题了。我看很可
能是你新的数据库没设好。
mysql导出导入就是两行脚本,实在没啥技术含量。我老人家半年前做过Oracle->MySQL
,试了几种方案还是Spring batch最好使。总的来说offline migration都没啥难度。 |
c********1 发帖数: 421 | 21 谢谢古老师亲自指点
“mysql workbench连到旧的”,可惜那个旧数据库的DBA不配合,死活不开放
MySQL
【在 g*****g 的大作中提到】 : 我老人家教你一个foot proof的方案吧。就mysql workbench连到旧的和新的数据库上 : ,在GUI确认中文读写都没问题。如果都没问题,那就是导出导入出问题了。我看很可 : 能是你新的数据库没设好。 : mysql导出导入就是两行脚本,实在没啥技术含量。我老人家半年前做过Oracle->MySQL : ,试了几种方案还是Spring batch最好使。总的来说offline migration都没啥难度。
|
g*****g 发帖数: 34805 | 22 跟他要readonly的access,如果不给就只能escalate了。
【在 c********1 的大作中提到】 : 谢谢古老师亲自指点 : “mysql workbench连到旧的”,可惜那个旧数据库的DBA不配合,死活不开放 : : MySQL
|