数据库入门理论知识介绍以及编译安装MySql
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

十二.编译安装MySql
1 CentOS 6.x下通过yum安装的MySQL是5.1版的,用户只需要通过一条命令就可以完成数据库的安装,但是在实际生产环节中,yum安装的版本有的时候回不适合我们当下的环境,这个适合就可以自定义安装,即是我特别喜欢源码安装,他可以指定安装路径,配置我们自己需要的参数等等。源码安装是运维必回的基本要素之一。接下来跟我一起来手把手安装一下MySql吧。 2 3 一.操作环境; 4 [root@yinzhengjie ~]# cat /etc/redhat-release 5 CentOS release 6.6 (Final) 6 [root@yinzhengjie ~]# 7 [root@yinzhengjie ~]# uname -r 8 2.6.32-504.el6.x86_64 9 [root@yinzhengjie ~]# 10 11 二.检查服务器现有的数据库; 12 刚刚给宿主机重装的操作系统,为了方便我只修改了部分参数,让虚拟机自动帮我生成了一台虚拟机,里面默认是安装的有MySQL版本的,如果您的服务器是手动安装的话建议不要勾选Mysql相关的包,因为便于做实验,不过您如果勾选了的话也没有太大关系。我们可以手动将其卸载。 13 [root@yinzhengjie ~]# rpm -qa | grep mysql #找到相应的软件包名 14 mysql-libs-5.1.73-3.el6_5.x86_64 15 [root@yinzhengjie ~]# 16 [root@yinzhengjie ~]# rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64 #讲找到的包名强行卸载 17 [root@yinzhengjie ~]# 18 [root@yinzhengjie ~]# rpm -qa | grep mysql #检查是否成功卸载 19 [root@yinzhengjie ~]# 20 21 三.安装MySQL 22 1.安装编译代码需要的安装包; 23 [root@yinzhengjie ~]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel 24 [root@yinzhengjie ~]# echo $? #查看上条命令是否正确执行结束。 25 0 26 [root@yinzhengjie ~]# 27 28 2.下载MySQL安装包 29 安装包我已经下载好了:链接:http://pan.baidu.com/s/1geG3nbX 密码:40ie 30 [root@yinzhengjie ~]# mkdir -pv /home/yinzhengjie/tools 31 [root@yinzhengjie ~]# cd /home/yinzhengjie/tools/ 32 [root@yinzhengjie tools]# 33 [root@yinzhengjie tools]# yum -y install lrzsz #用“rz”命令讲软件包上传至该目录 34 35 3.解压安装包 36 [root@yinzhengjie tools]# ll 37 total 35164 38 -rw-r--r--. 1 root root 36005278 Jul 11 07:37 mysql-5.6.14.tar.gz 39 [root@yinzhengjie tools]# 40 [root@yinzhengjie tools]# tar xf mysql-5.6.14.tar.gz -C /home/yinzhengjie/tools 41 [root@yinzhengjie tools]# ll 42 total 35168 43 drwxr-xr-x. 33 7161 wheel 4096 Sep 10 2013 mysql-5.6.14 44 -rw-r--r--. 1 root root 36005278 Jul 11 07:37 mysql-5.6.14.tar.gz 45 [root@yinzhengjie tools]# 46 47 4.cmake安装MySQL 48 整个过程可能要花费10分钟左右,可以适当的把您的虚拟机配置调高一点,这样相对来说会比较节省时间。 49 [root@yinzhengjie tools]# cd mysql-5.6.14 50 [root@yinzhengjie mysql-5.6.14]# cmake \ 51 > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 52 > -DMYSQL_DATADIR=/usr/local/mysql/data \ 53 > -DSYSCONFDIR=/etc \ 54 > -DWITH_MYISAM_STORAGE_ENGINE=1 \ 55 > -DWITH_INNOBASE_STORAGE_ENGINE=1 \ 56 > -DWITH_MEMORY_STORAGE_ENGINE=1 \ 57 > -DWITH_READLINE=1 \ 58 > -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ 59 > -DMYSQL_TCP_PORT=3306 \ 60 > -DENABLED_LOCAL_INFILE=1 \ 61 > -DWITH_PARTITION_STORAGE_ENGINE=1 \ 62 > -DEXTRA_CHARSETS=all \ 63 > -DDEFAULT_CHARSET=utf8 \ 64 > -DDEFAULT_COLLATION=utf8_general_ci 65 [root@yinzhengjie mysql-5.6.14]# echo $? 66 0 67 [root@yinzhengjie mysql-5.6.14]# make -j 4 && make install 68 [ 1%] Built target zlib 69 [ 1%] Built target INFO_SRC 70 [ 3%] Built target taocrypt 71 [ 4%] Built target yassl 72 [ 5%] [ 6%] Built target edit 73 Built target INFO_BIN 74 [ 6%] Built target gen_lex_hash 75 [ 6%] Built target regex 76 [ 10%] Built target strings 77 [ 11%] Built target vio 78 [ 11%] Built target mysqlservices 79 [ 11%] Built target my_safe_process 80 [ 11%] Built target comp_sql 81 [ 11%] Built target GenServerSource 82 [root@yinzhengjie mysql-5.6.14]# echo $? 83 0 84 [root@yinzhengjie mysql-5.6.14]# 85 86 四.配置MySQL 87 1.创建MySQL账户 88 [root@yinzhengjie ~]# cat /etc/passwd | grep mysql 89 [root@yinzhengjie ~]# cat /etc/group | grep mysql 90 [root@yinzhengjie ~]# useradd mysql 91 [root@yinzhengjie ~]# cat /etc/group | grep mysql 92 mysql:x:501: 93 [root@yinzhengjie ~]# cat /etc/passwd | grep mysql 94 mysql:x:501:501::/home/mysql:/bin/bash 95 [root@yinzhengjie ~]# 96 97 2.修改MySQL目录权限 98 [root@yinzhengjie ~]# ll /usr/local/mysql/ 99 total 156 100 drwxr-xr-x. 2 root root 4096 Jul 11 15:59 bin 101 -rw-r--r--. 1 root root 17987 Sep 10 2013 COPYING 102 drwxr-xr-x. 3 root root 4096 Jul 11 15:58 data 103 drwxr-xr-x. 2 root root 4096 Jul 11 15:58 docs 104 drwxr-xr-x. 3 root root 4096 Jul 11 15:58 include 105 -rw-r--r--. 1 root root 88388 Sep 10 2013 INSTALL-BINARY 106 drwxr-xr-x. 3 root root 4096 Jul 11 15:58 lib 107 drwxr-xr-x. 4 root root 4096 Jul 11 15:59 man 108 drwxr-xr-x. 10 root root 4096 Jul 11 15:59 mysql-test 109 -rw-r--r--. 1 root root 2496 Sep 10 2013 README 110 drwxr-xr-x. 2 root root 4096 Jul 11 15:59 scripts 111 drwxr-xr-x. 28 root root 4096 Jul 11 15:59 share 112 drwxr-xr-x. 4 root root 4096 Jul 11 15:59 sql-bench 113 drwxr-xr-x. 3 root root 4096 Jul 11 15:59 support-files 114 [root@yinzhengjie ~]# chown -R mysql:mysql /usr/local/mysql/ 115 [root@yinzhengjie ~]# ll /usr/local/mysql/ 116 total 156 117 drwxr-xr-x. 2 mysql mysql 4096 Jul 11 15:59 bin 118 -rw-r--r--. 1 mysql mysql 17987 Sep 10 2013 COPYING 119 drwxr-xr-x. 3 mysql mysql 4096 Jul 11 15:58 data 120 drwxr-xr-x. 2 mysql mysql 4096 Jul 11 15:58 docs 121 drwxr-xr-x. 3 mysql mysql 4096 Jul 11 15:58 include 122 -rw-r--r--. 1 mysql mysql 88388 Sep 10 2013 INSTALL-BINARY 123 drwxr-xr-x. 3 mysql mysql 4096 Jul 11 15:58 lib 124 drwxr-xr-x. 4 mysql mysql 4096 Jul 11 15:59 man 125 drwxr-xr-x. 10 mysql mysql 4096 Jul 11 15:59 mysql-test 126 -rw-r--r--. 1 mysql mysql 2496 Sep 10 2013 README 127 drwxr-xr-x. 2 mysql mysql 4096 Jul 11 15:59 scripts 128 drwxr-xr-x. 28 mysql mysql 4096 Jul 11 15:59 share 129 drwxr-xr-x. 4 mysql mysql 4096 Jul 11 15:59 sql-bench 130 drwxr-xr-x. 3 mysql mysql 4096 Jul 11 15:59 support-files 131 [root@yinzhengjie ~]# 132 [root@yinzhengjie ~]# chmod -R 1777 /tmp/ #调整/tmp权限,否则初始化会出错。 133 134 3.初始化配置 135 [root@yinzhengjie ~]# cd /usr/local/mysql/ 136 [root@yinzhengjie mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql #指定数据库的安装目录和存放数据的目录。 137 [root@yinzhengjie mysql]# echo $? 138 0 139 [root@yinzhengjie mysql]# 140 141 4.启动MySQL 142 [root@yinzhengjie mysql]# cp support-files/mysql.server /etc/init.d/mysql #将启动脚本移动到系统环境变量下。 143 [root@yinzhengjie mysql]# chmod +x /etc/init.d/mysql 144 [root@yinzhengjie mysql]# chkconfig mysql on #让其开机自启 145 [root@yinzhengjie mysql]# service mysql start #启动MySQL服务 146 Starting MySQL.. SUCCESS! 147 [root@yinzhengjie mysql]# 148 [root@yinzhengjie mysql]# lsof -i :3306 #检查服务是否启动成功。 149 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 150 mysqld 63150 mysql 10u IPv6 165718 0t0 TCP *:mysql (LISTEN) 151 [root@yinzhengjie mysql]# 152 153 5.配置环境变量 154 [root@yinzhengjie ~]# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile 155 [root@yinzhengjie ~]# echo "export PATH" >> /etc/profile 156 [root@yinzhengjie ~]# source /etc/profile 157 158 6.初始化管理员密码以及远程管理 159 [root@yinzhengjie ~]# mysql -uroot 160 Welcome to the MySQL monitor. Commands end with ; or \g. 161 Your MySQL connection id is 1 162 Server version: 5.6.14 Source distribution 163 164 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 165 166 Oracle is a registered trademark of Oracle Corporation and/or its 167 affiliates. Other names may be trademarks of their respective 168 owners. 169 170 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 171 172 mysql> SET PASSWORD = PASSWORD('yinzhengjie'); 173 Query OK, 0 rows affected (0.01 sec) 174 175 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.%' IDENTIFIED BY 'yinzhengjie' WITH GRANT OPTION; #这个是授权root用户可以用192.168.0.0网段远程登录密码是“yinzhengjie” 176 Query OK, 0 rows affected (0.00 sec) 177 178 mysql> quit 179 Bye 180 [root@yinzhengjie ~]#