rpm -qa | grep mysql
如果有的话 , 执行以下命令卸载
rpm -e mysql //普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
进入 mysql 5.6 下载地址 , 找到 “mysql-5.6.xx.tar.gz” , 我目前下载的是5.6.28
# 下载
wget ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.28.tar.gz
# 解压
tar zxvf mysql-5.6.28.tar.gz
# 进入mysql目录
cd mysql-5.6.28
# 设置编译参数
# 以下内容其实是一句 , 由于写了注释 ,所以使用\分成多行,便于理解.在使用时, 改成自己需要的后请将注释删除执行.(保留斜杠)
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据文件存放位置
-DSYSCONFDIR=/etc \ #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
-DWITH_READLINE=1 \ #快捷键功能(我没用过)
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径
-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
查看是否有mysql用户/用户组
# 查看用户列表
cat /etc/passwd
# 查看用户组列表
cat /etc/group
没有 , 就创建
groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql权限
chown -R mysql:mysql /usr/local/mysql
初始化配置 , 初始化配置脚本,创建系统自带的数据库和表
cd /usr/local/mysql
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
添加mysql服务并设置自启
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start --启动MySQL
设置环境变量
# 编译环境变量文件
vim /etc/profile
# 追加mysql 环境变量
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
# 保存并退出 ,生效环境变量
source /etc/profile
为root用户设置新密码
mysql
UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
# 刷新权限
FLUSH PRIVILEGES;
开启远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/AY1404111053020733e2Z.pid).
# 解决办法 :
修改/etc/my.cnf 中datadir,指向正确的mysql数据库文件目录
ERROR 2002 (HY000): Can\'t connect to local MySQL server through socket '/tmp/mysql.sock' (2)
# 解决办法 :
新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。
1. ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
2. /usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock
此文主要参考扩展阅读的1, 2.