cmake方式编译安装MySQL
由于MySQL5.5.xx-5.6.xx产品系列特殊性,所以编译方式也和早期的产品编译方式不同,采用cmake(cmake软件需要另外安装)或gmake方式安装编译.即:
./cmake .
make
make install
操作流程
卸载已安装的MySQL
下载:当前mysql版本到了5.5.29
必要软件包
编译安装添加用户
编译安装
编译参数
改变目录所有者
初始化数据库
注册为服务
启动MySQL服务
改变编码,防止乱码
将mysql的bin加入到path中
配置用户密码和远程访问权限
0. 卸载MySQL
# 查看是否有存在的MySQL运行进程
[root@localhost src]# netstat -tunpl|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3095/mysqld
# 关闭MySQL服务
[root@localhost src]# service mysqld stop
# 查看命令所在路径
[root@localhost src]# which mysql
/usr/bin/mysql
# 查看rpm安装目录
[root@localhost src]# rpm -qf /usr/bin/mysql
mysql-5.0.95-5.el5_9
# 无依赖删除软件包
[root@localhost src]# rpm -e mysql-5.0.95-5.el5_9 --nodeps
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
2. 必要软件包
yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake curl freetype libjpeg-turbo libjpeg-turbo-devel openjpeg-libs libpng gd ncurses
3. 编译安装
3.1 添加用户
useradd mysql -s /sbin/nologin
3.2 编译安装
tar -zxvf mysql-5.5.29.tar.gz && cd mysql-5.5.29 #默认情况下是安装在/usr/local/mysql
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install
3.3 改变目录所有者
chown -R mysql.mysql /usr/local/mysql
4、注册为服务
cd /usr/local/src/mysql-5.5.29/support-files
#注册服务
cp mysql.server /etc/rc.d/init.d/mysqld
#使用默认配置文件
cp my-small.cnf /etc/my.cnf
#让chkconfig管理mysql服务
chkconfig --add mysqld
# 给mysqld授权执行
chmod a+x /etc/init.d/mysqld #或者使用 setfacl -m u:root:rwx /etc/init.d/mysqld
#开机启动
chkconfig mysqld on
5、初始化数据库
cd /usr/local/mysql/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
6、启动MySQL服务
service mysqld start
7、将mysql的bin加入到path中
ln -s /usr/local/mysql/bin/mysql /usr/local/sbin/mysql
cd ~
#另外,把path添加到当前用户目录的bashrc中,如果需要全局设定,请修改`/etc/profile` vi .bashrc #加入以下内容
PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
8、修改MySQL数据库的root密码
/usr/local/mysql/bin/mysqladmin -u root password 'aaaaaa'
9、改变编码,防止乱码
SHOW VARIABLES LIKE 'character%'
修改mysql的my.cnf文件增加如下内容
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
pid-file=/var/lib/mysql/mysqld.pid
[mysql]
default-character-set=utf8
[mysqld_safe]
log-error=/var/lib/mysql/mysql_error.err
10、配置用户密码和远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY '123456' WITH GRANT OPTION;
安装的时候遇到的问题
[[email protected] /etc/init.d]
# service mysqld restart
/etc/init.d/mysqld: line 44: /usr/bin/my_print_defaults: 没有那个文件或目录
/etc/init.d/mysqld: line 44: /usr/bin/my_print_defaults: 没有那个文件或目录
/etc/init.d/mysqld: line 44: /usr/bin/my_print_defaults: 没有那个文件或目录
/etc/init.d/mysqld: line 44: /usr/bin/my_print_defaults: 没有那个文件或目录
停止 mysqld: [确定]
/etc/init.d/mysqld: line 117: /usr/bin/mysqladmin: 没有那个文件或目录
Cannot check for MySQL Daemon startup because of mysqladmin failure.
启动 mysqld: [失败]
问题已经找到:原因是安装的时候没有卸载用yum安装的MySQL数据库(卸载操作查看0)