1.mysql的远程连接命令可以远程导入导出数据
mysqldump --default-character-set=gb2312 -h255.255.000.00 -uroot -pxxxxxx mydatabase>d:\data.sql
将指定的数据库导出到一个外部SQL文件中去!
还原命令:
mysql --default-character-set=gb2312 -h255.255.000.00 -uroot -pxxxxxx mydatabase 2. MYSQL三种升级方法 安装办法:二进制包编译安装 第一种:适用于任何一种存储引擎。 1. 下载并安装好新版本的MySQL数据库,并将其端口改为3307(避免和旧版本的3306冲突),启动服务。 2. 在新版本下创建同名数据库。 # mysqldump -p3307 -uroot create mysqlsystems_com 3. 在旧版本下备份该数据库。 # mysqldump -p3306 -uroot mysqlsystems_com > mysqlsystems_com.bk Note: 你也可以加上–opt选项,这样可以使用优化方式将你的数据库导出,减少未知的问题。 4. 将导出的数据库备份导入到新版本的MySQL数据库中。 # mysql -p3307 -uroot mysqlsystems_com < mysqlsystems_com.bk 5. 再将旧版本数据库中的data目录下的mysql数据库全部覆盖到新版本中。 # cp -R /opt/mysql-5.1/data/mysql /opt/mysql-5.4/data(权限库保持不变) Note: 大家也都知道这个默认数据库的重要性。 6. 在新版下执行mysql_upgrade命令,其实这个命令包含一下三个命令: # mysqlcheck –check-upgrade –all-databases –auto-repair # mysql_fix_privilege_tables # mysqlcheck –all-databases –check-upgrade –fix-db-names –fix-table-names Note: 在每一次的升级过程中,mysql_upgrade这个命令我们都应该去执行,它通过mysqlcheck命令帮我们去检查表是否兼容新版本的数据库同时 作出修复,还有个很重要的作用就是使用mysql_fix_privilege_tables命令去升级权限表。 7. 关闭旧版本,将新版的数据库的使用端口改为3306,重新启动新版本MySQL数据库。到此,一个简单环境下的数据库升级就结束了。 第二种,同样适用任何存储引擎。 1. 同样先安装好新版本的MySQL。 2. 在旧版本中,备份数据库。 # mkdir /opt/mysqlsystems_bk ; mysqldump -p3306 -uroot –tab=/opt/mysqlsystems_bk mysqlsystems_com Note: –tab选项可以在备份目录mysqlsystems_bk下生成后缀为*.sql和*.txt的两类文件;其中,.sql保存了创建表的SQL语句而.txt保存着原始数据。 3. 接下来在新版本的数据库下更新数据。 # mysqladmin -p3307 -uroot create mysqlsystems_com # cat /opt/mysqlsystems_bk/*.sql | mysql -p3307 -uroot mysqlsystems_com ( Create Tables ) # mysqlimport mysqlsystems_com /opt/mysqlsystems_bk/*.txt ( Load Data ) 4. 之后的所有步骤与第一种方法的后三步5、6、7相同。 第三种,适用于MyISAM存储引擎,全部是文件间的拷贝。 1. 安装。 2. 从旧版本mysqlsystems_com数据库下将所有.frm、.MYD 和.MYI文件拷贝到新版本的相同目录下。 3.之后的步骤依然同于第一种的后三步。 以上就是三种升级MySQL的方法,看似没有出现什么问题,其实,在实际的生产环境中,为会有诸多问题发生,这就需要我们在升级之前充分了解新版本中增加了哪些新功能,进一步分析升级以后这些新特性是否将会对我们原来应用产生影响。 3. MYSQL远程连接不了的解决方案 有可能是这个用户权限不够。查看一下权限表。 4. MYSQL忘记密码解决办法 在windows下: 打开命令行窗口,停止mysql服务:Net stop mysql 到mysql的安装路径启动mysql,在bin目录下使用mysqld-nt.exe启动,在命令行窗口执行:mysqld-nt --skip-grant-tables 然后另外打开一个命入令行窗口,执行mysql,此时无需输入密码即可进入。 >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; >exit 使用任务管理器,找到mysqld-nt的进程,结束进程! 在重新启动mysql-nt服务,就可以用新密码登录了。 在linux下: 如果MySQL 正在运行,首先杀之:killall -TERM mysqld。 启动MySQL :bin/safe_mysqld --skip-grant-tables & 就可以不需要密码就进入MySQL 了。 然后就是 >use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; 重新杀MySQL ,用正常方法启动MySQL 。 5. 更改MYSQL的默认字符集 法1、 用SET 语法来指定,不加"GLOBAL" 的话就只对本次会话有效 SET [GLOBAL] character_set_client = utf8; SET [GLOBAL] character_set_connection = utf8; SET [GLOBAL] character_set_database = utf8; SET [GLOBAL] character_set_results = utf8; SET [GLOBAL] character_set_server = utf8; 方法2、 也用SET语法,只对本次会话有效 SET NAMES 'utf8'; 方法3、) 直接修改my.cnf,增加一行内容,然后重启MySQL,使之全局生效 default-character-set = utf8 6.MYSQL慢查询分析工具:mysqldumpslow mysqldumpslow命令 /path/mysqldumpslow -s c -t 10 /database/mysql/slow-log 这会输出记录次数最多的10条SQL语句,其中: * -s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来