mysql源码安装

本文提供了搭建MySQL5.5环境的完整步骤,包括使用cmake进行编译安装、创建必要的目录和用户、配置安装参数、初始化数据库、设置远程访问权限等。同时介绍了使用命令行启动MySQL服务、解决无法识别服务的问题以及添加到系统服务的方法。

cmake   http://www.cmake.org/files/v3.0/?C=M;O=D  (mysql5.5以后是通过cmake来编译的)

[root@ localhost local]#tar -zxv -f cmake-2.8.4.tar.gz
[root@ localhost local]#cd cmake-2.8.4
[root@ localhost cmake-2.8.4]#./configure
[root@ localhost cmake-2.8.4]#make
[root@ localhost cmake-2.8.4]#make install

 {   添加环境变量

    用vi在文件/etc/profile文件中增加变量,使其永久有效:

    vi /etc/profile   // 修改环境变量

    在文件的末尾追加

    PATH=/usr/local/cmake/bin:$PATH

    export    PATH

    然后执行

    source /etc/profile   //使修改生效

    echo $PATH   //查看PATH值

    检查cmake 安装

    cmake --version    

 }


准备工作

删除老版本mysql开头的文件和库

命令:rm -rf /usr/lib/mysql

rm -rf  /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

安装依赖

yum -y install ncurses-devel

1、创建mysql的安装目录及数据库存放目录

[root@localhost local]# mkdir  -p /usr/local/mysql   //安装mysql目录
[root@localhost local]# mkdir  -p /usr/local/mysql/data   //存放数据目录

2、创建mysql用户及用户组

下载地址  mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.45.tar.gz

[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -g mysql mysql

安装

[root@localhost mysql-5.6.4-m7]# cmake . \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
> -DMYSQL_DATADIR=/usr/local/mysql/data/ \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DEXTRA_CHARSETS=all \
> -DENABLED_LOCAL_INFILE=1

make  && make install
 

参数说明: http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安装目录

-DINSTALL_DATADIR=/usr/local/mysql/data         //数据库存放目录

-DDEFAULT_CHARSET=utf8                        //使用utf8字符

-DDEFAULT_COLLATION=utf8_general_ci            //校验字符

-DEXTRA_CHARSETS=all                            //安装所有扩展字符集

-DENABLED_LOCAL_INFILE=1                        //允许从本地导入数据



[root@localhost mysql-5.5.45]# cp support-files/my-medium.cnf /etc/my.cnf    //拷贝配置到etc下
[root@localhost mysql-5.5.45]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R root:mysql .   //把当前目录中所有文件的所有者所有者设为root,所属组为mysql
[root@localhost mysql]# chown -R mysql:mysql data    //数据目录设为mysql组下的mysql用户
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql  //以mysql身份创建系统数据库的表
[root@localhost mysql]#./bin/mysqld_safe --user=mysql &   //用mysql身份  启动MySQL,在后台运行


另一种启动更简便的方法

service mysql.server restart
mysql.server: 未被识别的服务
[root@localhost mysql]# cp support-files/mysql.server  /etc/init.d/mysql 
[root@localhost mysql]# service mysql restart
Shutting down MySQL.150808 08:20:22 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
[确定]
Starting MySQL.............[确定]
[3]+  Done                    ./bin/mysqld_safe --user=mysql
出现:mysql.server 未识别的服务

则可能mysql还没添加到系统服务中    

     cp support-files/mysql.server  /etc/init.d/mysql 

注意:主要是将mysql.server拷贝到/etc/init.d中,命名为mysql。

在有的系统中,mysql.server  在  /usr/local/mysql/share/mysql/mysql.server中,

而本系统中,mysql.server  在 /usr/local/mysql/support-files/mysql.server中。

然后再用#service mysql start 来启动mysql即可。

[root@localhost mysql]# ./bin/mysql   // 登录  (此时还没有密码)

mysql> select * from mysql.user\G  /查看都有哪些用户
mysql> delete from mysql.user where host !='localhost';   //删除非localhost 用户
Query OK, 4 rows affected (0.02 sec)

mysql> flush privileges;       //刷新授权表
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";  /为root添加远程连接的能力
Query OK, 0 rows affected (0.01 sec)

mysql> update mysql.user set Password = password('123456') where User='root';    //为mysql 用户添加密
Query OK, 2 rows affected (0.02 sec)
Rows matched: 2  Changed: 2  Warnings: 0

[root@localhost mysql]# ./bin/mysqladmin -uroot -p shutdown  //关闭mysqld 服务
Enter password: 

[root@localhost mysql]# echo '/usr/local/mysql/bin/mysqld_safe --user=mysql &' >> /etc/rc.local  //加入到开机自动启动


注:如果不能远程连接,试着关闭防火墙  

/etc/rc.d/init.d/iptables stop

出现错误mysql error number 1130,则加入下面语句试试:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;



重新编译时,需要清除旧的对象文件和缓存信息。

 make clean

 rm -f CMakeCache.txt

 rm -rf /etc/my.cnf


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值