Linux下源码安装 MySQL
从mysql-5.5起,mysql源码安装开始使用cmake了,因此我们得先安装cmake,配置安装目录./configure --perfix=/.....的时候和以前的会有些区别。
一、安装cmake
将cmake-2.8.7.tar.gz包上传至/Software目录下,然后进行如下操作:
1 [root@Jerry Software]# tar –zxvf cmake-2.8.7.tar.gz 2 [root@Jerry Software]# mv cmake-2.8.7 /usr/local 3 [root@Jerry Software]# cd /usr/local/cmake-2.8.7 4 [root@Jerry cmake-2.8.7]#./configure –prefix=/usr/local/cmake 5 [root@Jerry cmake-2.8.7]#make 6 [root@Jerry cmake-2.8.7]#make install
配置cmake环境变量:
(1)修改/etc/profile文件,在文件内加入以下内容:
#cmake
PATH=/usr/local/cmake/bin:$PATH
export PATH
(2)执行命令source /etc/profile使cmake环境变量生效
二、安装MySQL
创建mysql的安装目录及数据库存放目录
1 [root@Jerry ~]#mkdir -p /usr/local/mysql //mysql安装目录 2 [root@Jerry ~]#mkdir -p /usr/local/mysql/data //数据库存储目录
创建mysql用户及用户组
1 [root@Jerry ~]#groupadd mysql 2 [root@Jerry ~]#useradd -r -g mysql mysql
安装MySQL
先将mysql-5.6.25.tar.gz包上传至/Software目录下,然后进行如下操作:
1 [root@Jerry Software]# tar –zxvf mysql-5.6.25.tar.gz 2 [root@Jerry Software]# mv mysql-5.6.25 /usr/local 3 [root@Jerry Software]# cd /usr/local/mysql-5.6.25 4 [root@Jerry mysql-5.6.25]# cmake . //cmake后有个“.” 5 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 6 -DINSTALL_DATADIR=/usr/local/mysql/data 7 -DDEFAULT_CHARSET=utf8 8 -DDEFAULT_COLLATION=utf8_general_ci 9 -DEXTRA_CHARSETS=all 10 -DENABLED_LOCAL_INFILE=1 11 12 [root@Jerry mysql-5.6.25]#make 13 [root@Jerry mysql-5.6.25]#make install 14 15 参数说明: 16 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //指定安装目录 17 -DINSTALL_DATADIR=/usr/local/mysql/data //指定数据库存放目录 18 -DDEFAULT_CHARSET=utf8 //使用utf8字符 19 -DDEFAULT_COLLATION=utf8_general_ci //校验字符 20 -DEXTRA_CHARSETS=all //安装所有扩展字符集 21 -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
注意事项:
编译报错通常是因为缺少依赖的包造成的,把缺少的包安装上再重新进行编译。重新编译时,需要清除旧的对象文件和缓存信息。
1 # make clean 2 # rm -f CMakeCache.txt 3 # rm -rf /etc/my.cnf
三、配置MySQL
设置目录权限
1 [root@ Jerry ~]# cd /usr/local/mysql 2 //把mysql目录中所有文件的所有者所有者设为root,所属组为mysql 3 [root@Jerry mysql]# chown -R root:mysql . 4 //把data目录中所有文件的所有者所有者设为mysql,所属组为mysql 5 [root@Jerry mysql]# chown -R mysql:mysql data
将mysql的启动服务添加到系统服务中
1 [root@Jerry mysql]# cp support-files/my-default.cnf /etc/my.cnf
创建系统数据库的表
1 [root@Jerry mysql]# cd /usr/local/mysql 2 [root@Jerry mysql]# scripts/mysql_install_db --user=mysql
设置环境变量
1 [root@ Jerry ~]# vi /root/.bash_profile 2 在PATH=$PATH:$HOME/bin添加参数为: 3 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib 4 [root@ Jerry ~]#source /root/.bash_profile
四、启动MySQL
手动启动
1 [root@ Jerry ~]#cd /usr/local/mysql 2 //启动MySQL,但不能停止 3 [root@ Jerry mysql]#./bin/mysqld_safe --user=mysql & 4 启动日志写在此文件下:/usr/local/mysql/data/localhost.err 5 [root@ Jerry mysql]# mysqladmin -u root -p shutdown //关闭MySQL服务 6 //这里MySQL的root用户还没有配置密码,所以为空值。输入密码时,直接点回车键即可。
将mysql的启动服务添加到系统服务
1 [root@Jerry mysql]#cp support-files/mysql.server /etc/init.d/mysql 2 //注意:这里是将mysql.server拷贝到/etc/init.d目录下,命名为mysql。在有的系统中,mysql.server在/usr/local/mysql/share/mysql/mysql.server中,而本系统中,mysql.server在/usr/local/mysql/support-files/mysql.server中。
使用服务命令启动
1 [root@Jerry ~]# service mysql start //启动 2 [root@Jerry ~]# service mysql stop //停止 3 [root@Jerry ~]# service mysql restart //重启
设置开机自动启动MySQL
1 //将服务文件拷贝到init.d下,并重命名为mysql 2 cp support-files/mysql.server /etc/init.d/mysql //这一步上面已经操作 3 4 //赋予可执行权限 5 chmod +x /etc/init.d/mysql 6 7 //添加服务 8 chkconfig --add mysql 9 10 //显示服务列表 11 chkconfig --list
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入:
1 chkconfig --level 345 mysql on
重启服务器
1 reboot
验证
1 ps -ef|grep mysql
五、登录MySQL
此时,root用户暂未创建密码,可以使用如下命令登录MySQL:
1 mysql -u root -p
通常第一次会报错:-bash: mysql: command not found。这是因为系统默认会查找/usr/bin下的命令,如果mysql这个命令不在这个目录下,就会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件,如下:
1 ln -s /usr/local/mysql/bin/mysql /usr/bin
再次执行登录命令,输入密码直接回车即可登录MySQL
六、为Root用户创建登录密码和远程连接权限
创建密码
1 //设置mysql root用户登录密码,‘xxxxxx’中的密码为设置的密码 2 mysql>update user set Password = password('123456') where User='root';
远程连接
1 //为root添加远程连接的权限 2 mysql>grant all Privileges on *.* to root@"%" identified by "123456"; 3 mysql>flush privileges; 4 mysql>exit;
如果还是不能远程连接,则关闭服务器防火墙,如下:
1 service iptables stop