企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 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; ``` 相关博文参考:  *[linux下MySQL 5.6源码安装 - 野性的呼唤的日志](http://blog.163.com/liyinhui20080527@126/blog/static/815232582013885310900/)* *[CentOS 6.4下编译安装MySQL 5.6.14 - Xiongpq](http://www.cnblogs.com/xiongpq/p/3384681.html) * *[linux下MySQL 5.6源码安装 - 我的Hello World](http://my.oschina.net/looly/blog/297980)* # 安装的时候遇到的问题 ``` [root@localhost.localdomain /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)