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数据库的婺柯等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)