Linux安装mysql——源码安装

标签: linux mysql 源码 | 发表时间:2014-03-03 00:11 | 作者:jianfeiok
出处:http://www.iteye.com

1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件

(1)先安装cmake(mysql5.5以后是通过cmake来编译的)

[[email protected] rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz
[[email protected] rhel5 local]#cd cmake-2.8.4
[[email protected] rhel5 cmake-2.8.4]#./configure
[[email protected] rhel5 cmake-2.8.4]#make
[[email protected] rhel5 cmake-2.8.4]#make install


(2)创建mysql的安装目录及数据库存放目录

[[email protected] rhel5~]#mkdir -p /usr/local/mysql                 //安装mysql 
[[email protected] rhel5~]#mkdir -p /usr/local/mysql/data            //存放数据库

(3)创建mysql用户及用户组

[[email protected] rhel5~]groupadd mysql
[[email protected] rhel5~]useradd -r -g mysql mysql

(4)安装mysql

[[email protected] rhel5 local]#tar -zxv -f mysql-5.5.10.tar.gz
[[email protected] rhel5 local]#cd mysql-5.5.10
[[email protected] rhel5 mysql-5.5.10]#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
[[email protected] rhel5 mysql-5.5.10]#make
[[email protected] rhel5 mysql-5.5.10]#make install

参数说明:

-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                        //允许从本地导入数据

 

注意事项:

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

# make clean

# rm -f CMakeCache.txt

# rm -rf /etc/my.cnf

2.配置

(1)设置目录权限

[[email protected] rhel5~]# cd /usr/local/mysql

[[email protected] rhel5 mysql]# chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql

[[email protected] rhel5 mysql]# chown -R mysql:mysql data

(2)

[[email protected] rhel5 mysql]# cp support-files/my-medium.cnf /etc/my.cnf //将mysql的启动服务添加到系统服务中



(3)创建系统数据库的表

[[email protected] rhel5 mysql]# cd /usr/local/mysql
[[email protected] rhel5 mysql]# scripts/mysql_install_db --user=mysql

(4)设置环境变量

[[email protected] rhel5~]# vi /root/.bash_profile

在PATH=$PATH:$HOME/bin添加参数为:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

[[email protected] rhel5~]#source /root/.bash_profile

(5)手动启动mysql

[[email protected] rhel5~]# cd /usr/local/mysql

[[email protected] rhel5 mysql]# ./bin/mysqld_safe --user=mysql &   //启动MySQL,但不能停止

启动日志写在此文件下:/usr/local/mysql/data/localhost.err

关闭MySQL服务

[[email protected] rhel5 mysql]# mysqladmin -u root -p shutdown  //这里MySQL的root用户还没有配置密码,所以为空值。需要输入密码时,直接点回车键即可。

(6)另一种简单的启动mysql的方法(mysql已经被添加到系统服务中)

[[email protected] rhel5~]# service mysql.server start  
[[email protected] rhel5~]# service mysql.server stop
[[email protected] rhel5~]# service mysql.server restart

如果上述命令出现:mysql.server 未识别的服务

则可能mysql还没添加到系统服务中,下面用另一种方法添加:

[[email protected] rhel5 mysql]# cp support-files/mysql.server  /etc/init.d/mysql //将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即可。


(7)修改MySQL的root用户的密码以及打开远程连接

[[email protected] rhel5~]# mysql -u root mysql

mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "root";  //为root添加远程连接的能力。
mysql>update user set Password = password('xxxxxx') where User='root';
mysql>select Host,User,Password  from user where User='root'; 
mysql>flush privileges;
mysql>exit

重新登录:mysql -u root -p

若还不能进行远程连接,则关闭防火墙
[[email protected] rhel5~]# /etc/rc.d/init.d/iptables stop

注:如果不能远程连接,出现错误mysql error number 1130,则加入下面语句试试:

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


原文: http://www.cnblogs.com/fly1988happy/archive/2011/11/21/2257682.html



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [linux mysql 源码] 推荐:

Linux安装mysql——源码安装

- - Linux - 操作系统 - ITeye博客
1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件. (1)先安装cmake(mysql5.5以后是通过cmake来编译的). (2)创建mysql的安装目录及数据库存放目录. //安装mysql [[email protected] rhel5~]#mkdir -p /usr/local/mysql/data.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

Linux 安装 MySQL / MySQL 主从备份

- - BlogJava-首页技术区
假定所有安装包均在 /share目录,安装目录为 /opt !!. ========================= 安装 MySQL =========================. $ vi /opt/mysql/my.cnf (参考下面配置). $ vi /etc/rc.d/init.d/mysql (参考下面配置).

linux 下mysql自启动

- - 数据库 - ITeye博客
如果你都是按照默认配置安装的那么只要按照如下步骤就可以了. 1、cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql   将服务文件拷贝到init.d下,并重命名为mysql. 2、chmod +x /etc/init.d/mysql    赋予可执行权限.

Linux中对MySQL优化

- - 数据库 - ITeye博客
要求: MySQL数据库管理与维护. 1、熟悉Linux上安装、配置和优化MySQL数据库,. 2、熟悉 Mysql的AB复制以及读写分离的实现,能完成添加从库,从库变主库等操作;. 3、精通mysql数据库的查询、子查询、插入、更新等操作,以及建数据库、表和索引;. 4、掌握表的连接、视图,以为存储过程和函数的使用;.

linux 定期自动备份mysql的shell

- - OurMySQL
刚才有个玩家在站上玩游戏,提醒了我要及时备份数据啊,万一哪天服务器挂了把他们的数据丢了,我可就是罪人了. 一直打算放个自动备份的shell,都没有放. 安全起见,直接用Root执行的:. 以下是自动自动备份shell,只保留最新5天. AutoMySQLBackup — 轻量级MySQL备份方案. LINUX/win2003下mysql怎么定期自动备份数据库.

Linux下C语言执行MySQL语句

- - CSDN博客数据库推荐文章
本文出自    http://blog.csdn.net/shuangde800. 执行SQL语句的增、删、改、查的主要API函数为:. 函数接收参数连接句柄和字符串形式的有效SQL语句(没有结束的分号,这与mysql工具不同). 如果包含二进制数据的查询,要使用mysql_real_query..

Linux上MySQL 优化三板斧

- - 乐无限-微信公众号内容聚合站
Linux上MySQL 优化三板斧. Linux上MySQL 优化三板斧. 现在MySQL运行的大部分环境都是在Linux上的,如何在Linux操作系统上根据MySQL进行优化,我们这里给出一些通用简单的策略. 这些方法都有助于改进MySQL的性能. 你仔细检查的话,有些服务器上会有的一个有趣的现象:你cat /proc/cpuinfo时,会发现CPU的频率竟然跟它标称的频率不一样:.

Linux、mysql、tomcat大并发下的配置

- - Linux - 操作系统 - ITeye博客
    因为之前一直没太接触过项目实现部署的问题,所以中间出现了N多问题,现在有时间了,做了一个整理,已备后用. 此处不包括上一层服务器的负载,如使用nginx/apache等. 配置项目中的连接池最大连接数 <= mysql的max_connections(如项目有集群,则乘N). 可解决出现:MySQL 提示 Too many connections ( 1040 ).

Ubuntu下源码安装MySQL-5.5.25a

- - ITeye博客
                       Ubuntu下源码安装MySQL-5.5.25a.    最近感觉各种事想做,做IT的没有休息的时候. 今天在Linux下本来玩玩Android的源码看下的. 那小的怎看根目录的空间已然不多. 所以想把MySQL卸掉然后装到自己想要装的地方,所以又开始弄起MySQL来了(好像违背了我的初衷啊^_^),在加上我的导师是高数据库的,下学期还要想跟着导师写个小型数据库呢,所以干脆换了今天的目的.