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

 

posted on 2019-03-04 16:42  破解孤独  阅读(360)  评论(0编辑  收藏  举报

导航