编译安装MySQL-5.5
编译安装MySQL前的准备工作
安装编译源码所需的工具和库
【纯净CentOS 6.6 i386】
yum install gcc gcc-c++ ncurses-devel perl wget readline-devel zlib-devel openssl-dev cmake
【CMAKE】
指定安装文件的安装路径时常用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
其它常用的选项:
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLE_PROFILING=1
如果想清理此前的编译所生成的文件,则需要使用如下命令:
make clean
rm CMakeCache.txt
2、编译安装mysql
# tar xf mysql-5.5.33.tar.gz # cd mysql-5.5.33 # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data/ -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci # make # make install # groupadd -r -g 306 mysql # useradd -g mysql -u 306 -r -s /sbin/nologin mysql 初始化mysql # cd /usr/local/mysql/ [[email protected] mysql]# mkdir -pv /mydata/data [[email protected] mysql]# chown :mysql -R ./* [[email protected] mysql]# chown -R mysql.mysql /mydata/data/ [[email protected] mysql]# ll /mydata/data/ -d [[email protected] mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ [[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld [[email protected] mysql]# chmod +x /etc/rc.d/init.d/mysqld [[email protected] mysql]# chkconfig --add mysqld [[email protected] mysql]# cp support-files/my-large.cnf /etc/my.cnf [[email protected] mysql]# vim /etc/my.cnf +40 datadir= /mydata/data 数据目录 thread_concurrency = 4 设置线程数(核心数x2) 插入保存。 vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH [[email protected] ~]# service mysqld restart [[email protected] mysql]# netstat -tnlp
初始化mysql
打开新的shell,启用mysql [[email protected] ~]# mysql mysql> use mysql; mysql> SELECT user,host,password FROM user; 1、删除匿名用户 mysql> DROP USER ‘‘@‘localhost.localdomain‘; mysql> DROP USER ‘‘@‘localhost ‘; 2、给所有的root用户设定密码: 第一种方式: mysql> SET PASSWORD FOR [email protected] = PASSWORD(‘your_passwrod‘); 第二种方式: mysql> UPDATE user SET password = PASSWORD(‘your_password‘) WHERE user = ‘root‘; mysql> FLUSH PRIVILEGES; 第三种方式: # mysqladmin -uUserName -hHost password ‘new_password‘ -p # mysqladmin -uUserName -hHost -p flush-privileges