MySQL源码编译与初始化

MySQL源码编译与初始化

链接:https://pan.baidu.com/s/1ANGg3Kd_28BzQrA5ya17fQ
提取码:ekpy
复制这段内容后打开百度网盘手机App,操作更方便哦

1.MySQL简介

1.1数据库有很多种类:

  • 关系型数据库--->MySQL Oracle
  • 非关系型数据库-->memcached redis
  • 图形化数据库---->mongodb
  • 阵列型(线形)数据库--->Hbase
  • 时间序列数据库---->influxDB

1.2什么叫关系型数据库???

SQL数据库数据与数据之间是有关系的,通过关系能够将一系列数据都提取出来。

image_1ck7cgksc18arru548ab8c19un9.png-35.7kB

1.3什么叫非关系型数据库???

NOSQL(Not only SQL)数据库

2.安装源码编译必备的几个软件包

[root@yangwenbo yang]# yum -y install make gcc gcc-c++ ncurses-devel cmake
[root@yangwenbo yang]# rpm -qa make gcc gcc-c++ ncurses-devel cmake
gcc-4.4.7-4.el6.x86_64
cmake-2.6.4-5.el6.x86_64
gcc-c++-4.4.7-4.el6.x86_64
ncurses-devel-5.7-3.20090208.el6.x86_64
make-3.81-20.el6.x86_64

3.源码编译与安装

3.1源码编译cmake-2.8.6.tar.gz

[root@yangwenbo yang]# ls
cmake-2.8.6.tar.gz  mysql-5.5.22.tar.gz

3.1.1解包

[root@yangwenbo yang]# tar xf cmake-2.8.6.tar.gz -C /usr/src/

3.1.2去解包后的文件存放位置的目录

[root@yangwenbo yang]# cd /usr/src/cmake-2.8.6/

3.1.3编译安装

[root@yangwenbo cmake-2.8.6]# ./configure && gmake && gmake install
#以下省略。。。
  • 耐心等待...

3.1.4编译成功

[root@Mysql cmake-2.8.6]# echo $?
0

3.2源码编译mysql-5.5.22.tar.gz

[root@yangwenbo yang]# ls
cmake-2.8.6.tar.gz  mysql-5.5.22.tar.gz

3.2.1创建程序用户

[root@yangwenbo yang]# useradd -s /sbin/nologin -M mysql
[root@yangwenbo yang]# id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)

3.2.2解包

[root@yangwenbo yang]# tar xf mysql-5.5.22.tar.gz -C /usr/src/

3.2.3去解包后的文件存放位置的目录

[root@yangwenbo yang]# cd /usr/src/mysql-5.5.22/

3.2.4编译安装

[root@yangwenbo mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
#以下省略。。。

image_1ck99i3gard5nfe13jdo8rgm9f6.png-69.6kB

3.2.5编译成功

[root@Mysql mysql-5.5.22]# echo $?
0

3.2.6目录简介

image_1ck9a6drm1s361e3o1710jnea9ogg.png-13.9kB

4.安装后优化操作

4.1修改mysql安装目录的属主

[root@Mysql /]# chown -R mysql /usr/local/mysql/
[root@Mysql /]# ll -d /usr/local/mysql/
drwxr-xr-x. 13 mysql root 4096 Aug 19 00:19 /usr/local/mysql/

4.2创建修改my.cnf配置文件

[root@Mysql mysql]# /bin/cp support-files/my-medium.cnf /etc/my.cnf

image_1ck9avj0g2081jfh1b1h16tl1msiik.png-14.9kB

image_1ck9b045a1o8p18m01smqq7014ofj1.png-31.8kB

4.3创建修改mysqld的启动脚本

[root@Mysql mysql]# /bin/cp support-files/mysql.server /etc/init.d/mysqld

4.4为启动脚本加上X权限

[root@Mysql mysql]# chmod +x /etc/init.d/mysqld 
[root@Mysql mysql]# ll -d /etc/init.d/mysqld 
-rwxr-xr-x. 1 root root 10650 Aug 19 01:08 /etc/init.d/mysqld

4.5添加至系统服务(开机自启动)

[root@Mysql mysql]# chkconfig mysqld --add
[root@Mysql mysql]# chkconfig mysqld --list
mysqld        0:off	 1:off	2:on	3:on	4:on	5:on	6:off

4.6.1使用软连接,使环境变量找到这个命令

[root@Mysql mysql]# which mysql   #一开始找不到这个命令
/usr/bin/which: no mysql in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
[root@Mysql mysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/
[root@Mysql mysql]# which mysql   #通过软连接,已经可以找到这个命令
/usr/local/bin/mysql

4.6.2使用环境变量

image_1ck9s83r8qj8lh611cp16uu64j1p.png-10.9kB

image_1ck9s964j11i95enkak1s0pnca2m.png-2.5kB

4.7执行mysql_install_db脚本初始化数据库

[root@Mysql mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
#以下省略。。。

4.8启动mysql服务,并查看运行状态

[root@Mysql mysql]# /etc/init.d/mysqld start
Starting MySQL... SUCCESS! 
[root@Mysql mysql]# netstat -anpt | grep :3306
tcp     0     0 0.0.0.0:3306    0.0.0.0:*    LISTEN    40589/mysqld

5.登录MySQL

5.1进入

image_1ck9t53vp19ebgeh16rb70k1ue74g.png-14.8kB

5.2MySQL参数

image_1ck9t6i1c12es29dkd7bq5bd4t.png-11kB

5.3为MySQL设置密码

[root@Mysql mysql]# mysqladmin -uroot password '971108'

5.4用户登录

image_1ck9thllu1q3aa301m9g1h191eqt77.png-23.2kB

不交互登录

[root@Mysql mysql]# mysql -uroot -p971108
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
#登录成功,配置完成

6.误删tmp目录下的文件

6.1已知误删tmp目录下的文件

image_1ckp9g5mdaq61qlfs71bkjdh2c2.png-1.8kB

6.2修改MySQL配置文件

image_1ckp9349e14q82sumj914ig1lpu4m.png-2kB

image_1ckp9232e16md18u61bd9i0qhnj3p.png-6kB

6.3重启MySQL

image_1ckp9ephm9pv61uqbf1t6a1jhqb5.png-4.3kB

6.4查看

image_1ckp9gtbe30iniif7rdhq1010cf.png-3.6kB