Thank you for reading...
2007/06/13 11:37
今天在一台服务器上装较新版的MYSQL,从另一台服务器下压缩包,哇!80M/s的速度,29M的东西刷一下就下来了:)
解压,将原mysql(应该是4.x版本的,没去看),改名,将新的放在/usr/local/mysql/。
设置权限,参照linux下Mysql+php5+apache安装手记,启动
/usr/local/mysql/bin/mysqld_safe --user=mysql &
提示:
Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file /usr/local/mysql/data/xxx.pid
070613 11:09:17 mysqld ended
这个xxx.pid是原mysql目录下的。
后来试了几次,发现在mysql/data/mysql目录下是空的,打开INSTALL-BINARY看看,发现有一步没有操作:(
6. If you have not installed MySQL before, you must create the MySQL
grant tables:
shell> scripts/mysql_install_db --user=mysql
运行一下,启动,问题解决:)
解压,将原mysql(应该是4.x版本的,没去看),改名,将新的放在/usr/local/mysql/。
设置权限,参照linux下Mysql+php5+apache安装手记,启动
/usr/local/mysql/bin/mysqld_safe --user=mysql &
提示:
Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file /usr/local/mysql/data/xxx.pid
070613 11:09:17 mysqld ended
这个xxx.pid是原mysql目录下的。
后来试了几次,发现在mysql/data/mysql目录下是空的,打开INSTALL-BINARY看看,发现有一步没有操作:(
引用
6. If you have not installed MySQL before, you must create the MySQL
grant tables:
shell> scripts/mysql_install_db --user=mysql
运行一下,启动,问题解决:)
2007/06/05 16:58
从网上下了一个数据,其sql的内容是gb2312的。自己建了个UTF8的数据库,将sql文本转为UTF-8。用phpmyadmin导指示太大了,就去命令行导入,
mysql -u root -p --default-character-set=utf8 < f:/mobile_utf8.sql
导入后发现是乱码。
测试直接copy语句去phpmyadmin执行后插入的中文能正常显示。
想想导入时有编码的选项,
mysql --help查看了一下帮助,看到有--default-character-set=name(set the default character set)的选项,于是加一下,
mysql -u root -p --default-character-set=utf8 < f:/mobile_utf8.sql
浏览内容,中文正常显示。
后来想想,其实可以创建一个默认的数据库,导入数据库,通过phpmyadmin,调整数据库的编码选项就可以了。
--------------------------------------------------------------------------
第二天发现,很奇怪,虽然导入的中文在phpmyadmin中是正常显示的,但用程序输出时确是乱码。后来将没有转成utf-8的sql语句重新导一边,这回在phpmyadmin中中文显示不正常,但在程序输出时页面上显示的确是正确的中文。暂不清楚是什么原因。
mysql -u root -p --default-character-set=utf8 < f:/mobile_utf8.sql
导入后发现是乱码。
测试直接copy语句去phpmyadmin执行后插入的中文能正常显示。
想想导入时有编码的选项,
mysql --help查看了一下帮助,看到有--default-character-set=name(set the default character set)的选项,于是加一下,
mysql -u root -p --default-character-set=utf8 < f:/mobile_utf8.sql
浏览内容,中文正常显示。
后来想想,其实可以创建一个默认的数据库,导入数据库,通过phpmyadmin,调整数据库的编码选项就可以了。
--------------------------------------------------------------------------
第二天发现,很奇怪,虽然导入的中文在phpmyadmin中是正常显示的,但用程序输出时确是乱码。后来将没有转成utf-8的sql语句重新导一边,这回在phpmyadmin中中文显示不正常,但在程序输出时页面上显示的确是正确的中文。暂不清楚是什么原因。
2007/03/14 13:52
读《MySQL5权威指南》第3版的一些记录:
CREATE TABLE newtable SELECT * FROM oldtable
从oldtable中选中数据建立新表,但用此法旧表的索引,列的auto_increment属性和默认值属性在新表中就不见了。为避免这种情况,应该先建立新表,再添加数据。
CREATE TABLE newtable LIKE oldtable
INSERT INTO newtable SELECT * FROM oldtable
使用INSERT INTO newtable SELECT * FROM oldtable时必须保证源表和目标表的结构完全一致。如果不完全一致,则需要将所有字段列出来。
INSERT INTO newtable SELECT id,addtime,title FROM oldtable
或者
INSERT INTO newtable (id,addtime,title) SELECT id,addtime,title FROM oldtable
如果源和目标有ID编号相同的记录,则会出现一些问题。
使用INSERT IGNORE INTO ...,受影响的记录不参加复制。
用REPLACE ...命令代替INSERT INTO ...命令,受影响的记录在复制过程中被覆盖
对ID做出一些调整,不让其发生冲突。
SELECT @maxid :=MAX(id) from newtable
INSERT INTO newtable SELECT id + @maxid, addtime,title FROM oldtable.
CREATE TABLE newtable SELECT * FROM oldtable
从oldtable中选中数据建立新表,但用此法旧表的索引,列的auto_increment属性和默认值属性在新表中就不见了。为避免这种情况,应该先建立新表,再添加数据。
CREATE TABLE newtable LIKE oldtable
INSERT INTO newtable SELECT * FROM oldtable
使用INSERT INTO newtable SELECT * FROM oldtable时必须保证源表和目标表的结构完全一致。如果不完全一致,则需要将所有字段列出来。
INSERT INTO newtable SELECT id,addtime,title FROM oldtable
或者
INSERT INTO newtable (id,addtime,title) SELECT id,addtime,title FROM oldtable
如果源和目标有ID编号相同的记录,则会出现一些问题。
使用INSERT IGNORE INTO ...,受影响的记录不参加复制。
用REPLACE ...命令代替INSERT INTO ...命令,受影响的记录在复制过程中被覆盖
对ID做出一些调整,不让其发生冲突。
SELECT @maxid :=MAX(id) from newtable
INSERT INTO newtable SELECT id + @maxid, addtime,title FROM oldtable.
2006/12/06 17:36
1.表改名: mysql> alter table 表名1 rename 表名2;
例子:mysql>alter table tb1 rename tb2;
2.
创建用户:
CREATE USER 'hx'@ 'localhost' IDENTIFIED BY 'hxpass';
创建用户同时授权:
Grant All on db.* to hx identified by 'hxpass';
修改密码:
set password for hx@localhost = password('hxpass')
update user set password = PASSWORD('hxpass') where user='hx';
删除用户:
DROP USER ''@ 'develop';
DROP USER 'hx'@ 'localhost';
DROP USER 'hx'@ '%';
3.cat /proc/cpuinfo 查看CPU信息
cat /proc/meminfo 查看内存信息
例子:mysql>alter table tb1 rename tb2;
2.
创建用户:
CREATE USER 'hx'@ 'localhost' IDENTIFIED BY 'hxpass';
创建用户同时授权:
Grant All on db.* to hx identified by 'hxpass';
修改密码:
set password for hx@localhost = password('hxpass')
update user set password = PASSWORD('hxpass') where user='hx';
删除用户:
DROP USER ''@ 'develop';
DROP USER 'hx'@ 'localhost';
DROP USER 'hx'@ '%';
3.cat /proc/cpuinfo 查看CPU信息
cat /proc/meminfo 查看内存信息
2006/11/29 17:29
1.备份MYSQL:
把一个库导出到一个SQL文件
mysqldump db_name > /home/hx/backup/name.sql -uroot -p
备份多个库(使用-B参数)
mysqldump -B db1 db2 > /path/name.sql -u root -p
备份全部库
mysqldump --all-databases > /path/name.sql -u root -p
备份某库一个表
mysqldump db1 tb1 > /path/name.sql
备份某库多个表
mysqldump db1 tb1 tb2 > /path/name.sql
产生某库某表的结构
mysqldump -d db1 users > users.structure
产生某库某表的内容
mysqldump -t db1 users > users.data
2.恢复数据
有两种方式:
第一种:mysql db_name < /path/backup-file.sql -u root -p
第二种:
mysql -u root -p
use db_name
source /path/backup-file.sql
3.Linux下的压缩,将生成的sql备份文件打包一下。
zip xxx.zip xxx.sql
tar -czf xxx.rar xxx.sql
tar的解压是x,打包是c。
4.上传下载备份,我用的是SecureCRT。
下载到本地,sz 目录/文件名
上传到服务器,rz
rz -r 续传
rz -y 覆盖已有文件
把一个库导出到一个SQL文件
mysqldump db_name > /home/hx/backup/name.sql -uroot -p
备份多个库(使用-B参数)
mysqldump -B db1 db2 > /path/name.sql -u root -p
备份全部库
mysqldump --all-databases > /path/name.sql -u root -p
备份某库一个表
mysqldump db1 tb1 > /path/name.sql
备份某库多个表
mysqldump db1 tb1 tb2 > /path/name.sql
产生某库某表的结构
mysqldump -d db1 users > users.structure
产生某库某表的内容
mysqldump -t db1 users > users.data
2.恢复数据
有两种方式:
第一种:mysql db_name < /path/backup-file.sql -u root -p
第二种:
mysql -u root -p
use db_name
source /path/backup-file.sql
3.Linux下的压缩,将生成的sql备份文件打包一下。
zip xxx.zip xxx.sql
tar -czf xxx.rar xxx.sql
tar的解压是x,打包是c。
4.上传下载备份,我用的是SecureCRT。
下载到本地,sz 目录/文件名
上传到服务器,rz
rz -r 续传
rz -y 覆盖已有文件







