mysql 5.1 升级编译安装5.6把原MyISAM表转换成InnoDB,并全局备份一次【原创】



mysql 5.1 升级编译安装5.6把原MyISAM表转换成InnoDB,并全局备份一次

mysql 的默认配置文件  my-large.cnf

 http://990487026.blog.51cto.com/10133282/1697647




【如果有innodb的.sql数据库文件,直接看第3步,上面的第1、步 就不用看了,谢谢】


1、
【备份指定数据库】不要用逗号mydb hellodb

[root@pc0003 ~]# mysqldump -uroot -p  --databases mydb hellodb  > /tmp/all.sql

【修改ENGINE=MyISAM 为 ENGINE=InnoDB】

[root@pc0003 home]# cp hellodb.sql hellodb.sql.bak

[root@pc0003 home]# vim hellodb.sql
:%s/ENGINE=MyISAM/ENGINE=InnoDB/g



2、
删除原先存在的数据库,编译安装新的数据库
http://990487026.blog.51cto.com/10133282/1692874



3、
【每个innodb都使用独立的数据存放文件,数据文件,二进制日志文件分开存放,恢复数据】

[root@lcl ~]# service iptables stop 
[root@lcl ~]# setenforce 0

[root@pc0003 mybackups]# vim /etc/my.cnf
在[mysqld]段 添加下面的两行
innodb_file_per_table = ON
log-bin=/mydata/binlogs/master-bin     
   
保存退出 

[root@lcl ~]# mkdir -pv /mydata/binlogs 
[root@lcl ~]# chown -R mysql:mysql /mydata/binlogs/ 
[root@lcl ~]# service mysqld restart 
[root@lcl ~]# ss -tnl | grep 3306 
LISTEN     0      80                       :::3306                    :::*  

查看InnoDB使用是否使用独立的存储文件
mysql> show variables like '%per_table%'; 
+-----------------------+-------+ 
| Variable_name         | Value | 
+-----------------------+-------+ 
| innodb_file_per_table | ON    | 
+-----------------------+-------+

查看二进制日志是否已经打开
mysql> show variables like 'log_bin';

【如果正在运行的生产mysql服务器,滚动一次日志】
mysql> SHOW MASTER STATUS;
mysql> FLUSH LOGS;
mysql> show master status;

【临时关闭二进制,恢复数据,然后在打开二进制的记录】
mysql> set sql_log_bin=0;
mysql> source /home/hellodb.sql
mysql> set sql_log_bin=1;
mysql> show databases;

查看表的存储是否为InnoDB
mysql> show table status from hellodb \G

InnoDB独立的存储文件
[root@localhost ~]# ls -1 /mydata/data/ocsweb/
accesslog.frm
accesslog.ibd


再来mysqldump全局备份一次修改好了的数据库,不要用逗号 mydb hellodb

[root@pc0003 ~]# mysqldump -uroot -p  --databases mydb hellodb  > /tmp/all.sql



创建一个链接,为原先的php程序提供sock接口

[root@nb0001 ~]# ln -sv /tmp/mysql.sock /var/lib/mysql/mysql.sock
[root@lcl ~]# service mysqld restart
[root@lcl ~]# service httpd restart





举例:创建一个用户,把ocsweb这个库所有权限给它

mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON `ocsweb` .* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES


修改密码的推荐方式:

mysql> UPDATE user SET password = PASSWORD('your_password') WHERE user = 'root';
mysql> FLUSH PRIVILEGES





贴上移除mysql*.rpm要注意的依赖关系:

先安装最不需要依赖的包,再安装程序文件。


[root@localhost home]# yum remove mysql mysql-libs mysql-server
Dependencies Resolved
=============================================
 Package                                Arch 
=============================================
Removing:
 mysql                                  i686 
 mysql-libs                             i686 
 mysql-server                           i686 
Removing for dependencies:
 cronie                                 i686 
 cronie-anacron                         i686 
 crontabs                               noarc
 perl-DBD-MySQL                         i686 
 php-mysql                              i686 
 postfix

 

 

贴上原web服务,php依赖的包,

先安装最不需要依赖的包,再安装程序文件

[root@hghast001 home]# rpm -qa| grep php
php-imap-5.3.3-46.el6_6.x86_64 ?
php-cli-5.3.3-46.el6_6.x86_64
php-mbstring-5.3.3-46.el6_6.x86_64 ?
php-odbc-5.3.3-46.el6_6.x86_64
php-xml-5.3.3-46.el6_6.x86_64
php-pear-1.9.4-4.el6.noarch
php-ldap-5.3.3-46.el6_6.x86_64
php-common-5.3.3-46.el6_6.x86_64
php-xmlrpc-5.3.3-46.el6_6.x86_64
php-pdo-5.3.3-46.el6_6.x86_64
php-gd-5.3.3-46.el6_6.x86_64
mod_perl              
php-devel             
php-imap              
php-mbstring          
php-mysql             
php-devel
php-imap 
php-mbstring




结束!

你可能感兴趣的:(mysql,5.1,并全局备份一次)