转载:https://blog.csdn.net/zhengjunlove/article/details/76847987
编译安装相对比较复杂并且时间比较长,建议使用二进制安装,除非有特殊的需求
清理已安装的软件包
1、检查是否安装了mysql
- [root@localhost Desktop]# rpm -qa|grep mysql
如果安装了就卸载
强制删除
- rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps
- rpm -e mysql
创建用户组并且添加一个用户
- groupadd mysql
- 创建一个用户,不允许登陆和不创主目录
- useradd -s /sbin/nologin -g mysql -M mysql
- 检查创建用户
- tail -1 /etc/passwd
注:MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。因此,我们首先要在系统中源码编译安装cmake工具。
2.安装编译代码需要的包
- yum -y install make gcc-c++ cmake bison-devel ncurses-devel
- wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz
- tar -zxvf mysql-5.6.37.tar.gz
- cd 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 \
- -DMYSQL_USER=mysql \
- -DWITH_DEBUG=0 \
- -DWITH_SSL=system
- make && make install
安装时间比较长,这时候可以去喝杯咖啡了
3.修改/usr/local/mysql权限
- chmod +w /usr/local/mysql
- chown -R mysql:mysql /usr/local/mysql
- [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
- /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
- [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
- chmod +x /etc/init.d/mysqld
- chkconfig mysqld on
- service mysqld start
- 或者
- /etc/init.d/mysql start
修改/etc/profile文件
- root@localhost mysql]# vim /etc/profile
在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
让配置立即生效
- [root@localhost mysql]# source /etc/profile
8.登陆测试,默认是没有密码,直接回车就可进入
9. 设置 mysql 密码 (这一步可以先不设置),命令如下:
- /usr/local/mysql/bin/mysqladmin -uroot -p password '你的密码'
- ls -ld /usr/local/mysql/
到这里MySQL编译安装就完成了