MySQL 修改数据库名称的一个新奇方法

MySQL 修改数据库名称的一个新奇方法,第1张

MySQL在51引入了一个rename

database *** 作,但在MySQL5123后又不支持这个命令。可以说是一个实验性的功能,没有在生产中支持过(mysql-51

release在mysql-5130),那么生产中我们有时为了追求完美需要改一下库名。怎么 *** 作呢?

这里提供一个变通的方法

1

创建出新库名:

复制代码

代码如下:

mysql>create

database

db_v2;

2生成rename语句,从olddb里迁移,我这里olddb里sbtest;

复制代码

代码如下:mysql>select

concat("rename

table

",table_schema,"",table_name,"

to

db_v2",table_name,";")

into

outfile

'/tmp/rename_to_db_v2sql'

from

information_schematables

where

table_schema='sbtest';

3执行生成的sql

复制代码

代码如下:mysql>source

/tmp/rename_to_db_v2sql

就这么简单可以搞定了。

Good

luck!

不过别忘了使用PASSWORD函数。 方法二 使用mysqladmin,这是前面声明的一个特例。

mysqladmin -u root -p password mypasswd

输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。

把命令里的root改为你的用户名,你就可以改你自己的密码了。

当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,

那么这种方法就是无效的。

而且mysqladmin无法把密码清空。

下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

方法三 mysql> INSERT INTO mysqluser (Host,User,Password)

VALUES('%','jeffrey',PASSWORD('biscuit'));

mysql> FLUSH PRIVILEGES

确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。

在《mysql中文参考手册》里有这个例子,所以我也就写出来了。

注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。 方法四 和方法三一样,只是使用了REPLACE语句

mysql> REPLACE INTO mysqluser (Host,User,Password)

VALUES('%','jeffrey',PASSWORD('biscuit'));

mysql> FLUSH PRIVILEGES 方法五 使用SET PASSWORD语句,

mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');

你也必须使用PASSWORD()函数,

但是不需要使用FLUSH PRIVILEGES。 方法六 使用GRANT IDENTIFIED BY语句

mysql> GRANT USAGE ON TO jeffrey@"%" IDENTIFIED BY 'biscuit';

这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。

1去mysql下找到文件myini配置文件用记事本打开,找到 default-character-set=latin1,character-set-server=latin1;将latin1改为utf-8或者gbk,修改完之后保存。

2我的电脑右击 “管理”进入之后选择“服务和应用程序”下的“服务”,找到“mysql”之后右击选择“重新启动”。

追问:

那样应该是以后建的数据库时utf-8的格式吧,我要改之前的建数据库的编码格式,怎么改呀

回答:

你把这两条都设置好了,然后重启MySQL服务,再看看数据库里有没有变化

mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来

我们可以通过命令查看数据库当前编码:

mysql> SHOW VARIABLES LIKE 'character%';

发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。

第一阶段:

mysql设置编码命令

[sql] view plain copy

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;

    然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。

但是,这只是一种假象

此种方式只在当前状态下有效,当重启数据库服务后失效。

所以如果想要不出现乱码只有修改myini文件,

从myini下手(标签下没有的添加,有的修改)

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

然后重启mysql,执行

mysql> SHOW VARIABLES LIKE 'character%';

确保所有的Value项都是utf8即可。

但是可恶的事情又来了,

|character_set_client      | utf8                                  |

| character_set_connection | utf8                                  |

| character_set_database   | utf8                                  |

| character_set_filesystem | binary                                |

| character_set_results    | utf8                                  |

| character_set_server     | latin1                                |

| character_set_system     | utf8

注意  该配置| character_set_server     | latin1 无法设置成UTF8   交互时候仍然会出现乱码。

第二阶段:找到下面这东东

X:\%path%\MySQL\MySQL Server 50\bin\MySQLInstanceConfigexe

重新启动设置,将默认编码设置为utf8这样就能达到我们所要的效果了。

mysql> SHOW VARIABLES LIKE 'character%';

+--------------------------+---------------------------------------------------------+

| 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       | C:\Program Files\MySQL\MySQL Server 50\share\charsets\ |

+--------------------------+---------------------------------------------------------+

8 rows in set

以上就是关于MySQL 修改数据库名称的一个新奇方法全部的内容,包括:MySQL 修改数据库名称的一个新奇方法、如何修改mysql数据库中的用户名和密码、如何修改Mysql数据库的婺柯等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9338944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存