温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux安装mysql数据库——编译安装

发布时间:2020-08-13 03:54:49 来源:ITPUB博客 阅读:132 作者:宋祖强 栏目:MySQL数据库

http://www.cnblogs.com/xiongpq/p/3384681.html


一. mysql5.6版本下载 : 
http://dev.mysql.com/downloads/mysql/5.6.html#downloads

二 . 注册一个oracle账号:
Linux安装mysql数据库——编译安装

三 .系统包准备


  1. # yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-devel*  make  cmake


注意:ncurses-devel是mysql的依赖包,必须安装。


1. 准备好mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件

(1)先安装cmake(mysql5.5以后是通过cmake来编译的,如果yum已经安装成功,这步可以忽略)


  1. tar -zxv -f cmake-2.8.4.tar.gz 
  2. cd cmake-2.8.4
  3. #./configure
  4. make
  5. make install
  1. (2)创建mysql的安装目录及数据库存放目录
  2.   # mkdir -p   /usr/local/mysql/             //安装mysql 
  3.  # mkdir -p  /usr/local/mysql/data          //存放数据库
  4.  # chown -R mysql:mysql /usr/local/mysql     //把当前目录中所有文件的所有者所有者设为mysql,所属组为mysql  
  5.  # chown -R 1777 /tmp/

  6. (3)创建mysql用户及用户组
  7. # groupadd  mysql
  8. useradd  --g mysql mysql

  9. (4)安装mysql
  10. # tar -zxv -f mysql-5.5.10.tar.gz
    # cd mysql-5.5.10
    # cmake . 
         -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
         -DMYSQL_DATADIR=/usr/local/mysql/data \
         -DSYSCONFDIR=/etc \
         -DWITH_MYISAM_STORAGE_ENGINE=1 \
         -DWITH_INNOBASE_STORAGE_ENGINE=1 \
         -DWITH_MEMORY_STORAGE_ENGINE=1 \
         -DWITH_READLINE=1 \
         -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock  \
         -DMYSQL_TCP_PORT=3306 \
         -DENABLED_LOCAL_INFILE=1 \
         -DWITH_PARTITION_STORAGE_ENGINE=1 \
         -DEXTRA_CHARSETS=all \
         -DDEFAULT_CHARSET=utf8 \
         -DDEFAULT_COLLATION=utf8_general_ci
    # make 
    # make install

  11. 参数说明:

-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                        //允许从本地导入数据
其他更多参数    http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf

2. 数据库配置

(1) MYSQL系统服务

  1. cd  /usr/local/mysql 
  2. # cp  support-files/my-medium.cnf  /etc/my.cnf               //将mysql的配置文件添加到系统中
  3. # cp  support-files/mysql.server   /etc/init.d/mysql          //将mysql的启动服务添加到系统服务中
  4. # cp  support-files/mysql.server   /etc/rc.d/init.d/mysql     //将mysql的启动服务添加到系统服务中
  5. # chmod +x /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 即可。   如果想让MySQL服务器在每次计算机重启时启动,键入如下命令(root用户身份): $chkconfig mysql  on

(2) 设置环境变量(因为默认只能在mysql/bin中执行mysql命令)
  1. [root@ rhel5~]# vi /home/mysql/.bash_profile      //或修改全局环境变量/etc/profile, #echo 'export PATH= /usr/local/mysql/bin:$PATH >> /etc/pofile
  2. export PATH=/usr/local/mysql/bin:$PATH:$HOME/bin  //这里注意将新的mysql bin目录添加到原来的PATH前面
  3.                                                   //否则可能出现这个问题:http://oldboy.blog.51cto.com/2561410/1122867
  4. #tail -l  /home/mysql/.bash_profile               //验证是否修改正确
  5. source  /home/mysql/.bash_profile
4) 创建系统数据库的表
  1. # cd /usr/local/mysql/scripts
  2. # ./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
(5)手动启动mysql
  1. # cd mysql-5.5.10/mysql
  2. # ./bin/mysqld_safe --user=mysql &   //启动MySQL,但不能停止  
  3. 启动日志写在此文件下:/usr/local/mysql/data/localhost.err

  4. 关闭MySQL服务
  5. [root@ rhel5 mysql]# mysqladmin -u root -p shutdown  //这里MySQL的root用户还没有配置密码,所以为空值。需要输入密码时,直接点回车键即可。
(6) 另一种简单的启动mysql的方法(mysql已经被添加到系统服务中)
  
[root@ rhel5~]# /etc/init.d/mysql  start 
  1. [root@ rhel5~]# /etc/init.d/mysql  stop 
  2. [root@ rhel5~]# /etc/init.d/mysql  restart
  3. [root@ rhel5~]# netstat -lntup |grep 3306    //查看mysql是否启动

如果上述命令出现:mysql 未识别的服务,则可能mysql还没添加到系统服务中,查看服务文件

[root@szq init.d]# ll /etc/init.d/mysql 

  1. -rwxr-xr-x. 1 root root 10904 Apr 13 04:42 /etc/init.d/mysql

(7) 修改MySQL的root用户的密码以及打开远程连接
[root@ rhel5~]mysql
mysql> select user,host from mysql.user;
mysql> delete from mysql.user where user ='';
mysql> delete from mysql.user where host ='::1';
修改root密码方法1:
[root@ rhel5~]mysql -u root -p --无密码登录
mysql> use mysql;
mysql> desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" 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;


修改root密码方法2
[mysql@db_server1 ]$ mysqladmin -u root -S /app/3308/mysql.sock password '123456'

重新登录:mysql -u root -p



(8) 防火墙设置 
mysql3306端口默认是不能开启的,若还不能进行远程连接,则关闭防火墙。也可以通过以下命令允许其通过。
# vi /etc/sysconfig/iptables
  添加如下内容:
  -A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
# service iptables restart 

#/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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI