zoukankan      html  css  js  c++  java
  • 【转】CentOS 编译安装MySQL全过程

    原文:http://blog.csdn.net/jiangfeng08/article/details/5752390
    官方参考:http://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.5/en/source-installation.html

    其他参考:http://www.orczhou.com/index.php/2010/06/compile-mysql-from-source/
    http://os.51cto.com/art/201002/182532.htm

    1、到chinaunix下载mysql

    下载地址: http://download.chinaunix.net/download/0008000/7159.shtml

    2、上传到CentOS服务器

    本例放在 /home/jiangfeng3 中

    3、创建mysql组及用户

    [root@localhost ~]# groupadd mysql

    [root@localhost ~]# useradd -g mysql mysql


    4、编辑文件权限

    [root@localhost ~]# chmod 755 mysql-5.0.75.tar.gz



    5、CentOS mysql编译和安装

    解压:
    [root@localhost ~]# tar zxvf mysql-5.0.75.tar.gz 

    进入到mysql安装包

    [root@localhost ~]# cd mysql-5.0.75


    配置参数

    [root@localhost ~]# ./configure --prefix=/usr/local/mysql --with-extra-charsets=all --with-unix-socket-path=/usr/local/mysql/var/mysql.sock --with-named-curses-libs=/usr/lib/libncursesw.so.5



    预编译

    [root@localhost ~]# make


    安装
    [root@localhost ~]# make install


    6、配制CentOS mysql安装只是第一步,我们还要对CentOS mysql进行相应的配制


    一般的情况下CentOS mysql要找配制文件my.cnf,位置在/etc目录下,所以我们得把文件my.cnf文件放到/etc/目录下。

    让CentOS mysql服务器启动时能找到它。我们安装好CentOS mysql后,配制文件应该在/usr/local/mysql/share/mysql目录中,配制文件有几个,比如my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的网站和不同配制的服务器环境,当然需要有不同的配制文件了。


    一般的情况下,my-medium.cnf这个配制文件就能满足我们的大多需要;

    进入/usr/local/mysql这个目录,

    看一下是不是已经安装好了呢??
    [root@localhost ~]# cd /usr/local/mysql/
    [root@localhost ~]# ls
    bin include info lib libexec man mysql-test share sql-bench


    我们把/usr/local/mysql/share/mysql这个目录下的my-medium.cnf,复制为my.cnf到/etc目录下。


    [root@localhost ~]# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf


    做了这些工作以后,还得创造CentOS mysql授权表, 否则数据库也是启动不了。mysql_install_db,这个命令的用途就是做这个的。


    CentOS mysql安装的命令都安装到了/usr/local/mysql/bin这个目录中。


    [root@localhost mysql]#/usr/local/mysql/bin/mysql_install_db


    运行mysql_install_db命令过后,我们查看/usr/local/mysql就会发现,有个var的目录。

    这个目录,就是用来装所有数据库的位置,比如我们创建了linuxsir的数据库后,

    就在在//usr/local/mysql/mysql/var目录中有linuxsir的目录。这回应该明白了吧。


    7、启动CentOS mysql服务器,可能这是最轻松的了,不过也不能高兴的太早,因为有时会出现权限方面的错误。


    CentOS mysql服务器启动,应该是/usr/local/mysql/share/mysql目录中的 mysql.server


    启动方法是:
    [root@localhost mysql]# /usr/local/mysql/share/mysql.server start


    如果不能启动请运行/usr/local/mysql/bin/mysqld_safe --user=root 就能够启动了!!


    接着输入/usr/local/mysql/share/mysql/mysql.server start即可成功启动


    好了,我们把密码设置为123456 /usr/local/mysql/bin/mysqladmin -u root password 123456


    如果没有返回错误说明正确了。

    接着输入/usr/local/mysql/bin/mysql -u root -p就可以管理CentOS mysql安装了。

    ===============================
    配置环境变量

    linux下如何设置mysql的环境变量

    我在AS5下安装完mysql之后,在启动过程中,发现如下问题:

    我直接输入:
    mysql -u root -p
    提示bash: mysql: command not found

    然后我到/usr/local/mysql/bin下输入:
    mysql -u root -p
    还是提示bash: mysql: command not found

    然后我输入:
    ./mysql -u root -p
    ok,可以了。

    这里是因为环境变量没设!

    linux下设置mysql的环境变量:
    /etc/profile中添加:
    export PATH=$PATH:/usr/local/mysql/bin       就OK

    其他的变量都类似了 关键是明白各个配置文件在系统中的原理


    ====================================================
    ====================================================

    重启MySQL
    以下Linux下重启MySQL的正确方法:

    1、通过rpm包安装的MySQL

    service mysqld restart

    2、从源码包安装的MySQL

    // linux关闭MySQL的命令

    $mysql_dir/bin/mysqladmin -uroot -p shutdown

    // linux启动MySQL的命令

    $mysql_dir/bin/mysqld_safe &
    或者:$mysql_dir/bin/mysqld_safe --user=root        

    其中mysql_dir为MySQL的安装目录,mysqladmin和mysqld_safe位于MySQL安装目录的bin目录下,很容易找到的。

    3、以上方法都无效的时候,可以通过强行命令:“killall mysql”来关闭MySQL,但是不建议用这样的方式,因为这种野蛮的方法会强行终止MySQL数据库服务,有可能导致表损坏……所以自己掂量着用。


    ========================================
    ========================================

    远程无法连接MySQL的问题:
    Mysql默认只能本机访问.如果需要其他机器远程访问,需要设置.

    1> 增加一个用户,用来进行远程登陆.用上方法6中的localhost登陆mysql,执行sql语句" GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; "增加一个用户名为myuser,密码为mypassword.其中的"%"表示所有机器都可以访问.用上方法4重新启动MySql.

    2> 这样过后,在本机上可以用命令"mysql -h <自己机器的IP> -u myuser -p"来登陆MySql.说明设置成功.

    3> 最重要一点.你这个时候可以发现,在本机器上可以连接MySql.但是在其他机器上用相同方法,会出现" Can't connect to MySQL server on '9.186.100.178' (10065)"的错误.分析原因是AS4的防火墙导致.用下面方法设置防火墙:打开文件/etc/sysconfig/iptables,在最后一条之 前加一条:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT. 然后执行 /etc/init.d/iptables restart. 至此设置AS4防火墙完毕.
    更省事点就是直接关闭防火墙:service iptables stop


    改表法
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
    mysql -u root -p123
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';

    改表法。
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
    mysql -u root -p123
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';

    阅读(313) | 评论(0) | 转发(0) |
    0

    上一篇:【转】linux vi vim 的使用

    下一篇:经典语句

    给主人留下些什么吧!~~
    评论热议
  • 相关阅读:
    C# sqlhelp
    vs2015 C#打包程序为exe
    python3.6安装docx模块
    python 第八天
    python 第七天
    python 选课系统
    python 第六天
    python 模拟实现一个ATM + 购物商城程序
    python 计算器
    python 第五天
  • 原文地址:https://www.cnblogs.com/black/p/5171817.html
Copyright © 2011-2022 走看看