欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MySQL 5.5.12安装和升级

程序员文章站 2022-06-01 10:14:27
...

mysql 5.5中InnoDB作为默认的数据库存储引擎,mysql-5.1升级mysql到mysql-5.5以后,以下程序需要重新编译安装升级:PHP 5.3.6

mysql 5.5中InnoDB作为默认的数据库存储引擎,mysql-5.1升级mysql到mysql-5.5以后,以下程序需要重新编译安装升级:
PHP 5.3.6
cacti spine
pureftp

安装
wget ://mysql.ntu.edu.tw/

tar -C /usr/local -xzf mysql-5.5.12-linux2.6-x86_64.tar.gz
cd /usr/local
ln -s mysql-5.5.12-linux2.6-x86_64/ mysql

cd /usr/local/mysql
mkdir -p /usr/local/mysql/etc/
cp support-files/my-huge.cnf etc/my.cnf

sed -i 's/skip-locking/skip-external-locking/' my.cnf
sed -i 's/default-character-set/character-set-server/' my.cnf
sed -i 's/log_slow_queries/slow_query_log/' my.cnf

修改server-id = 1为服务器ip地址最后几位,或者其它数值:
cd /usr/local/mysql/etc/
vim my.cnf
#max_allowed_packet = 1M
server-id = 8108

max_allowed_packet = 64M
max_connections=800
character-set-server=utf8
expire_logs_days = 60
binlog_format=mixed
log-bin=mysql-bin
#read_only=1
#slave-skip-errors=1062,1032,1053

innodb_log_files_in_group=2
#default_table_type = INNODB //unknown variable
innodb_data_home_dir = /opt/data/mysql/
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M;ibdata3:20M:autoextend
innodb_log_group_home_dir = /opt/data/mysql/

# 4G RAM
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit=0
innodb_thread_concurrency=8
innodb_flush_method=O_DIRECT

# perform
tmp_table_size = 512M
max_heap_table_size=128M

slow_query_log
#log-queries-not-using-indexes
#log-slow-admin-statements
#slow_query_log_file=mysql-slow.log
long_query_time=1
log-error=mysqld.log

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

添加数据库用户
/usr/sbin/groupadd -g 502 mysql
/usr/sbin/useradd -u 502 -g mysql mysql

mkdir -p /opt/data/mysql/
chown mysql.mysql /opt/data/mysql/

cd /usr/local/mysql/
scripts/mysql_install_db –user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
#chmod -R u+rw data
cd /opt/data/mysql/
chown mysql.mysql /opt/data/mysql/

cd /usr/local/mysql/
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld

/etc/rc.d/init.d/mysqld restart

#/sbin/chkconfig –level 345 mysqld on
#/sbin/chkconfig –del mysqld
/sbin/chkconfig –add mysqld
/sbin/chkconfig –list mysqld

echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
cat /etc/ld.so.conf
ldconfig

mkdir -p /var/lib/mysql/
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

#/usr/local/mysql/bin/mysqld_safe &
mkdir -p /var/run/mysqld/
chown mysql /var/run/mysqld/

#加入mysql到路径
echo pathmunge /usr/local/mysql/bin after > /etc/profile.d/mysql.sh

#执行一下,保证mysql在路径环境变量中
. /etc/profile

mysql5.1升级到mysql5.5
mysql_upgrade包含一下三个命令:
# mysqlcheck –check-upgrade –all-databases –auto-repair
# mysql_fix_privilege_tables
# mysqlcheck –all-databases –check-upgrade –fix-db-names –fix-table-names
在每一次的升级过程中,建议执行mysql_upgrade这个命令,,通过mysqlcheck命令帮我们去检查表是否兼容新版本的数据库同时作出修复,使用mysql_fix_privilege_tables命令去升级权限表。
/usr/local/mysql/bin/mysql_upgrade -uroot -p

[ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default_table_type=INNODB'
注释my.cnf中的default_table_type=INNODB

把所有INNODB表转换成MYISAM表的脚本
sed -i 's/$opt_type/$opt_engine/' /usr/local/mysql/bin/mysql_convert_table_format
/usr/local/mysql/bin/mysql_convert_table_format –user='root' –password='veryi.com' –socket='/tmp/mysql.sock' –type='INNODB'

MySQL 5.5.12安装和升级