您的位置:首页 > 数据库 > MySQL

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

2015-09-23 14:02 666 查看
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


结束!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息