原文地址:http://www.cnblogs.com/ShanFish/p/6531365.html
参考地址:
http://blog.csdn.net/1099564863/article/details/51622709
http://blog.csdn.net/wendi_0506/article/details/39478369
http://www.cnblogs.com/xiaoit/p/3994092.html
http://www.cnblogs.com/xiongpq/p/3384681.html
接上一篇文章使用RPM包安装MysqL,确实很方便。但是安装后却不知道各文件保存在哪个文件夹下!尝试使用源码安装~
本文主要参考:CentOS 6.4下编译安装MySQL 5.6.14
一、卸载旧版本
1、使用下面的命令检查是否安装有MysqL [root@localhost tools]# rpm -qa|grep -i MysqL 2、有的话就卸载 [root@localhost tools]# yum remove MysqL-server-5.6.35-1.el6.i686 [root@localhost tools]# yum remove MysqL-devel-yum remove MysqL-client-yum remove MysqL-utilities-1.6.5-1.el6.noarch [root@localhost tools]# yum remove MysqL-connector-python-2.1.1.el6.i686 3、删除相关目录 [root@localhost tools]# whereis MysqL [root@localhost tools]# rm -rf /usr/share/MysqL [root@localhost tools]# rm -rf /var/lib/MysqL [root@localhost MysqL]# mv /usr/lib/MysqL /usr/lib/MysqL.bak #这个当时不确定是rmp包所创建,暂时改名
二、安装MysqL
4、安装编译代码需要的包
[root@localhost tools]# yum list|grep ncurses-devel
[root@localhost tools]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel
5、下载MysqL 35
[root@localhost tools]# wget https://cdn.MysqL.comDownloads/MysqL-5.6/MysqL-5.6.35.tar.gz
[root@localhost tools]# tar zxvf MysqL-35.tar.gz
[root@localhost tools]# cd MysqL-35
第一次下载错了(MysqL-35-linux-glibc2.5-i686.tar.gz),编译时总是报错
CMake Error: The source directory “*” does not appear to contain CMakeLists.txt.
要选择的是 MysqL Community Server 下的 Source Code!!!
6、目录创建(-p父目录不存在则创建此目录)
[root@localhost MysqL-35]# mkdir -p /usr/local/MysqL/data
7、编译安装
[root@localhost MysqL-35]# 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=/usr/local/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
[root@localhost MysqL-make && install
[root@localhost MysqL-make clean
三、配置MysqL
8、设置权限
查看是否有MysqL用户及用户组
[root@localhost MysqL-cat /etc/passwd
[root@localhost MysqL-cat /etc/group
如果没有就添加MysqL用户和组
[root@localhost MysqL-35]# groupadd MysqL
[root@localhost MysqL-35]# useradd -g MysqL MysqL
修改/usr/local/MysqL权限
[root@localhost MysqL-chown -R MysqL:MysqL /usr/local/MysqL
9、初始化配置
进入安装路径
[root@localhost MysqL-35]# cd /usr/local/MysqL
执行初始化配置脚本,创建系统自带的数据库和表
[root@localhost MysqL]# scripts/MysqL_install_db --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data --user=MysqL
10、启动MysqL
添加服务,拷贝服务脚本到init.d目录
如果/etc目录有之前存在的my.cnf文件,将其重命名。启动MysqL服务时,会优先在/etc目录下查找
[root@localhost MysqL]# mv /etc/my.cnf /etc/my.cnf.bak
[root@localhost MysqL]# cp support-files/MysqL.server /etc/init.d/MysqL
[root@localhost MysqL]# chkconfig MysqL on
[root@localhost MysqL]# service MysqL start --启动MysqL
11、配置用户
设置PATH
[root@localhost MysqL]# echo "export PATH=$PATH:/usr/local/MysqL/bin" >> /etc/profile
[root@localhost MysqL]# source /etc/profile
[root@localhost MysqL]# echo $PATH
修改root密码
[root@localhost MysqL]# MysqL -uroot
MysqL> SET PASSWORD = PASSWORD('MysqL5635');
设置mydba用户可以远程访问
MysqL> GRANT ALL PRIVILEGES ON *.* TO mydba'@%' IDENTIFIED BY ' WITH GRANT OPTION;
防火墙设置可参考 http:www.cnblogs.com/ShanFish/p/6519950.html
12、补充
退出后重新在终端登录
[root@localhost ~]# MysqL -uroot -p
bash: MysqL: command not found
使用完整的路径可以登录
[root@localhost ~]# /usr/local/MysqL/bin/MysqL -uroot -p
Enter password:
最后建立一个软链接,其它常用命令MysqLadmin、MysqLdump等不可用时候都可按用此方法解决
[root@localhost ~]# ln -s /usr/local/MysqL/bin/MysqL /usr/bin
Add 2017-03-13关于环境变量第一次使用的是临时的
#直接运行export命令定义变量【只对当前shell有效(临时的)】 [root@VMUest ~]# export PATH=/usr/local/MysqL/bin:$PATH [root@VMUest ~]# echo $PATH
它只对当前的shell有效,因此刚配置时可以使用MysqL,退出登录就不能使用。后来将export写入到文件/etc/profile,就可以永久有效,当然也不需要软链接啦
[root@VMUest ~]# ll /usr/bin |grep MysqL lrwxrwxrwx. 1 root root 26 Mar 10 16:23 MysqL -> /usr/local/MysqL/bin/MysqL [root@VMUest ~]# rm -f /usr/bin/MysqL [root@VMUest ~]# MysqL -uroot -p Enter password:
然后就可以安心的玩MysqL啦~,我们可以导入样例数据,安装MySQL Utilities等等~~~
因为不懂,所以加倍努力!