您的位置:

源码构建mysql服务器,MySQL源代码

本文目录一览:

如何源码安装mysql数据库

这个可以这样

比如解开源码包, 得到一个文件夹ABC

cd ABC

mkdir build-mysql

cd build-mysql

cmake ..

make

make install

就是这个思路

ubuntu 怎么源码安装mysql

1.下载源码包

2.解压包

tar -zxvf mysql-5.6.33.tar.gz

3.安装必要依赖

sudo apt-get install make bison g++ build-essential libncurses5-dev cmake

4.进入安装包目录,配置MySQL安装参数 //源码安装最大的好处就是可以自定义参数,制定安装目录,方便管理

cmake -DCMAKE_INSTALL_PREFIX=[指定MySQL安装的目录]/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=[指定MySQL的数据存放目录如:]/usr/local/mysql/data -DMYSQL_USER=mysql -DWITH_DEBUG=0

make -j4 #-j数字 表示以多核心运行编译

make install #安装

5. 常用命令软连接,设置环境变量

sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

sudo ln -s /usr/local/mysql/bin/mysql /usr/bin

sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

6.初始化数据库

sudo /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

7.启动MySQL服务器

sudo /usr/local/mysql/bin/mysqld start

#如果启动不了,考虑编译安装时自定义数据存放目录,所以导致mysqld找不到对应的目录

解决: vi /usr/local/mysql/bin/mysqld

修改datadir = [指定MySQL的数据存放目录如:] /usr/local/mysql/data

保存退出,再次启动 sudo /usr/local/mysql/bin/mysqld start #OK 搞定

8. 启动成功后创建root用户的密码

/usr/local/mysql/bin/mysqladmin -u root password '新密码'

9.启动MySQL端

/usr/local/mysql/bin/mysql -u root -p

输入密码

10.设置环境变量

vi /home/个人目录/.bashrc 或者 vi /root/.bashrc

#在后面添加这段代码

export PATH="$PATH:/home/sy/lnmp/mysql/bin"

#重启电脑ok

#若不想重启电脑,仅限当次有效(重启失效)

#执行命令

export PATH=$PATH:/usr/local/mysql/bin

mysql --version //测试

如何源码安装mysql

为了避免端口冲突、程序冲突等现象,建议先将使用rpm方式安装的mysql、mysql-server软件包卸载

2

MySQL5.5版本以后需要使用cmake工具编译安装,所以在安装MySQL之前要先安装cmake工具(安装方法如下)

3

挂载软件光盘(挂载前先查询下是否已经有其他光盘挂载了,如果有就用umount命令卸载后重新挂载带有MySQL软件包的光盘)

END

编译安装:解包、配置、编译和安装

解包(解包就是将光盘里面的安装包解压到本地,一般解压到/usr/src目录下)

配置(配置是根据服务器的实际应用需要来制定不同的选项,如指定安装路径、启用字符集等等,类似于windows软件的自定义安装,只不过linux中更加灵活)

编译(编译就是完成配置后使用"make"命令将源代码文件进行编译而生成二进制的程序模块、动态链接库、可执行文件等,输入make回车即可)

安装(编译完成后,执行"make install"安装命令,将软件的执行程序、配置文件、帮助文档等相关文件复制到linux系统中,进行安装,输入make install回车即可)

如何配置全世界最小的 MySQL 服务器

首先我们先解压Mysql的安装包,建议解压到 /usr/local/src 目录中方便管理

# tar xf mysql-5.6.16.tar.gz

# cd mysql-5.6.16

然后我们执行以下指令对源码包进行预处理:

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

配置中指定了安装路径、数据库路径、配置文件路径等参数。等配置结束后可以使用 echo $? 查看返回值确定是否配置成功。我在编译时便遇到了一个名为 ncurses-devel 的依赖包没有安装,具体信息请阅读错误提示。等我用yum源安装好后发现无法继续cmake了,只好删除后重新解压源码包才配置成功的。好了 一切没问题了就开始 make make install 吧!

# make make install

由于源码包比较大,解压后我统计了下,竟然291M,天啊这可得慢慢等待了。我花费了一个多小时才编译完成的,也是够慢了。

编译安装完成后会生成 /usr/local/mysql 这样一个文件夹,如果选用了直接解压二进制包,就把它解压到 /usr/local 中。我们进入这个文件夹中看看

bin 这个目录存放着mysql的服务器和客户机程序,我们应该添加到环境变量

data 这个文件夹就是数据库目录

include 这里存放着mysql开发用的函数头文件,可以被其他源码包编译时依赖

lib Mysql运行需要的运行库

scripts Mysql初始化数据库的脚本,更改数据库目录后也需要进行初始化

man Mysql是使用手册,需要让man命令识别这个路径才能使用

support-files 其中存放着Mysql的配置文件模板和服务控制脚本等文件

Mysql的配置文件为 /etc/my.cnf ,数据库目录为 /usr/local/mysql/data

接下来就开始部署这些文件,然后让Mysql启动起来吧!首先建立mysql用户和组,并不创建家目录,不允许登陆系统

# groupadd mysql

# useradd -M -s /sbin/nologin -g mysql mysql

设置mysql安装目录的属主和属组

# chown -R mysql:mysql /usr/local/mysql/

给数据库目录可读可写的权限

# chmod 777 -R /usr/local/mysql/data/

复制配置文件和服务控制脚本到相应位置

# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

编辑配置文件 /etc/mysql.cnf,添加:

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

指定安装目录和数据库目录就可以了,其他参数先不用管。如图一所示

接下来就可以初始化数据库了

# cd /usr/local/mysql

# scripts/mysql_install_db --user=mysql

结果如图二所示就代表成功了,可以用 echo $? 查看返回值

现在就可以启动Mysql数据库服务了 它的启动命令是 mysqld

# service mysqld start

然后出现大写的 " SUCCESS "就代表启动成功了,然后用netstat看看它监听的端口吧!

# netstat -anpt | grep mysqld

我们发现它默认监听在 TCP 的" 3306 "端口

我们可以用它自带的 mysql 命令连接进去看看

用 -u 指定用户名 -h 指定主机 -p 来输入密码

# /usr/local/mysql/bin/mysql -u root -h localhost -p

这个root用户可不是系统登陆的root用户,而是mysql服务器中的一个默认用户。由于我们还没有给root用户设置密码,直接回车就可以进如了,如果出现一个" mysql "就代表成功了。输入" exit "命令退出。

总使用绝对路径来执行mysql命令也不是办法,我们把它的环境变量配置下吧

# echo 'export PATH=$PATH:/usr/local/mysql/bin' /etc/profile.d/mysql.sh

# source /etc/profile.d/mysql.sh

好啦,看看是不是能直接执行mysql命令了呢

接下来就分析一下my.cnf这个配置文件的各参数意义

basedir mysql的安装目录

datadir 数据库目录

port 指定服务端口,默认3306 端口

server_id pid文件路径

socket 套接字

skip-locking 可避免mysql的外部锁定,降低系统出错几率

skip-name-resolve 禁止mysql对外部连接进行DNS解析,可节约时间

key_buffer_size 设置索引缓存区大小,合理调节这个数值可以获得更好的索引处理性能,过度调大反而降低性能。参数没有可以自己添加

sort_buffer_size 设置排序缓存区的大小 (每个连接独占)

read_buffer_size 设置查询操作缓存区的大小 (每个连接独占)

join_buffer_size 设置联合查询操作缓存区的大小 (每个连接独占)

max_connections 设置服务器最大连接进程数

mysql的root用户没有密码是非常不安全的,接下来我们为它配置一个密码。注意 要给root用户添加密码是需要启动服务的,请确保你的Mysqld服务处于运行状态

# mysqladmin -u root password "himysql"

如果已经设置了密码,想去修改 就要在命令上添加 -p 参数,-p 参数是用来提醒输入密码的,就和mysql命令一样

# mysqladmin -u root password "himysql" -p

接下来输入旧密码就可以更改新密码了,再试一试,登陆mysql服务器是不是需要使用密码了呢?

如果是在本机登陆mysql服务器 -h 选项是可以省略的,如果使用root登陆,连-u 参数都可以省略,如果没有密码登录,连 -p 都是可以省略的,比如你第一次启动服务,直接mysql就可以连接上去了

这个mysqladmin是Mysql服务器的管理程序,可用于执行检察配置文件、检查服务状态、关闭服务器、创建数据库以及删除数据库等的系统管理操作。其格式如下:

mysqladmin 选项 参数 . . .

create db_name 创建一个名为db_name的新数据库

debug 将debug信息写入错误日志

drop db_name 删除一个名为db_name的数据库

extended-status 显示服务器状态变量和他们的值

flush-hosts 刷新缓存中的所有信息

flush-logs 刷新所有日志信息

flush-privileges 重新载入授权表

flush-status 清除状态变量

flush-tables 刷新所有的表

flush-threads 刷新线程的缓存

ping 显示服务器运行状态

processlist 正在运行服务器线程的列表

password new_password 更改密码

shutdown 关闭服务器

start-slave 在从服务器上启动同步

stop-slave 在从服务器上关闭同步

-u root 指定用户

-h localhost 指定连接的主机

-p 指定需要输入密码

其中一些概念不懂没关系,先眼熟就行了,在后面的学习中将会慢慢了解

当我们用mysql命令登陆到服务器后,出现的" mysql "我们应该怎么操作呢?

在 mysql 提示符下可以使用SQL语言或命令对数据库进行管理,每条SQL语句都以 " ; " 结束,且不区分大小写。用户可以通过上下键调出曾经输入过的命令。

对数据库的操作不外乎增删查改,下面就看看一些很简单的命令吧!

show databases; 查看当前存在的数据库

use 数据库名称; 使用指定的数据库

show tables; 查看指定数据库有哪些表

create database 数据库名称; 创建新数据库

drop 数据库名称; 删除数据库

编译安装Mysql服务器到此也已经差不多了,除了编译时间长了些,按照步骤一步一步下来还是蛮简单的。如果想知道Mysql数据库的更多操作请看下一章:Mysql数据库的管理与备份恢复。一定要动手做一做哦!Enjoy Your Time !o(^▽^)o

Linux 下二进制源码包安装mysql 详细过程

安装之前先把二进制源码准备好,可以从搜狐镜像下载:我准备的是mysql-5.5.15-linux2.6-i686.tar.gz

,linux

version

2.6.18-164.el5

实际工作中和虚拟机的配置有些地方可能会不相同

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

注意:mysql

安装的时候必须指定到

/usr/local

必须命名为mysql

二进制源码安装需要在安装目录/usr/local下运行

复制代码代码如下:

//创建用户mysql

*

groupadd

-g

3306

mysql

*

useradd

-g

mysql

-u

3306

-M

mysql

*

id

mysql

*

chown

-R

mysql:mysql

/mydata/

//

mysql对目录要有写权限

*

ll

-d

/mydata/

*

cp

/mysql-5.5.15-linux2.6-i686

/usr/local

*

cd

/usr/local/mysql

//

开始初始化

mysql

*

chown

-R

mysql:mysql

.

*

ln

-sv

/mysql-5.5.15-linux2.6-i686

mysql

*

scripts/mysql_install_db

--user=mysql

--datadir=/mydata/data

//

span

style="color:#993300;"scripts脚本初始化/span

初始化

用来生成mysql数据库

数据库用来存放表等源数据信息

复制代码代码如下:

//安装完成

下面配置启动

*

ls

support-files/

//

准备服务启动脚本

*

cp

support-files/mysql.server

/etc/init.d/mysqld

//

放入init.d

*

chkconfig

--add

mysqld

//

加入服务列表

*

chkconfig

--list

mysqld

//

--list

显示出来

复制代码代码如下:

//此时可以启动mysql了

但还需要配置mysql

*

ls

/etc/my.cnf

*

ls

support-files/

*

cp

support-files/my-large.cnf

/etc/my.cnf

*

vim

/etc/my.cnf

[mysqld]

//

找到该段

并添加datadir

=

/mydata/data

datadir

=

/mydata/data

*

service

mysqld

start

//

开启服务

*

netstat

-tnl

//

3306

端口打开

*

echo

$PATH

*

/usr/local/mysql/bin/mysql

*

export

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

//

span

style="color:#cc6600;"注意/span:不加$

就仅仅剩下你添加的路径

*

vim

/etc/profile

//

在export

之前添加下面的路径

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

//

永久生效的路径配置方法

*

mysql

//

此时mysql已经可启动了

复制代码代码如下:

//mysql库文件的路径配置

*

ls

*

vim

/etc/ld.so.conf

//

修改库文件位置

*

vim

/etc/ld.so.conf.d/mysql.conf

//

规范的配置

当前目录下以.CONF结尾都可以配置

*

ldconfig

-v

|

grep

mysql

//

重新加载所有库文件的路径

没有mysql的库文件

vim

/etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

//

新建mysql.conf

文件

在文件中添加这些内容

*

ldconfig

-v

|

grep

mysql

//

修改之后在重新加载一次

否则服务器不知道

//mysql库文件的路径配置

*

ls

*

vim

/etc/ld.so.conf

//

修改库文件位置

*

vim

/etc/ld.so.conf.d/mysql.conf

//

规范的配置

当前目录下以.CONF结尾都可以配置

*

ldconfig

-v

|

grep

mysql

//

重新加载所有库文件的路径

没有mysql的库文件

vim

/etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

//

新建mysql.conf

文件

在文件中添加这些内容

*

ldconfig

-v

|

grep

mysql

//

修改之后在重新加载一次

否则服务器不知道

复制代码代码如下:

//头文件的配置

库文件有哪些函数以及函数在别人编写程序的时候怎么调用

怎么传递参数

参数类型是什么

返回值类型是是什么

必须找到库文件所对应的头文件

库文件对应的头文件在/

usr/include

*

ls

/usr/include/

*

ln

-sv

/usr/local/mysql/include

/usr/include/mysql

//

头文件的输出

*

vim

/etc/man

*

vim

/etc/man.config

//

添加Man

MANPATH

/usr/local/mysql/man

OK!

mysql

配置成功---