关于小悟志网站地图归档友情链接联系Feed

云上小悟 + 

首页 » 网站建设 »

在Ubuntu中编译安装MySQL

网站建设
2017年2月27日 / 141次阅读
标签:MySQL

文章《在Ubuntu中编译安装MySQL》的特色图片

此文所述编译安装流程,在Ubuntu Server下能够成功。但是在Ubuntu桌面版下,存在一个问题:/tmp/mysql.sock文件无法生成,mysql也在启动的时候提示找不到这个文件。多方咨询,依然无解。可以选择自己在Server版上装一个桌面,请参考:给Ubuntu安装图形界面 。如果你不想太麻烦,可以直接在ubuntu中使用apt的方式来安装mysql,请参考:在ubuntu中使用apt安装mysql

第一次学习在Ubuntu Server的环境下,编译安装MySQL数据,在此文中记录整个编译安装的过程和各种细节。

Ubuntu Server:16.04

MySQL版本:5.6.34

1,准备安装环境

用root登录ubuntu之后(如果不能root登录,在下述命令前加sudo,或者参考:如何使用root登录ubuntu系统?),用如下命令准备环境:

apt install cmake

apt install libncurses5-dev

apt install bison (warning...)

以上3个软件包都是编译安装MySQL需要用到的,当然,还需要确保你的ubuntu上已经有了Gcc编译器等工具(可参考:在Ubuntu Server上安装Gcc编译器)。

 

2, 下载并解压MySQL标准源码包

可以使用搜狐的镜像来下载:

wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.34.tar.gz

tar zxvf mysql-5.6.34

然后,当前目录下就多了一个mysql-5.6.34的文件夹,cd进去,准备开始cmake。

3, cmake时的参数

cmake就像我们编译安装Apache时用的configure,cmake不是make的代替。

我的输入是:

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/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

回车,一切OK.

第1步中提到的3个软件包,如果不全,cmake的时候会有错误提示,这个时候再安装也可以,只是记得在下次cmake的时候,先用下面的命令删除上一次的缓存文件:rm CMakeCache.txt

4, make && make install

如果你之前make过,请先make clean一下。

注意:make && make install是一个命令行输入的,&&表示按顺序执行命令,&&可以在Linux中可以把多个命令串起来使用,我现在就是make clean && make && make install这样用。

MySQL的编译安装时间比较长,你可以去喝杯茶。编译过程有warning,但是没有error,就不用管了。

5, 创建组和用户,并运行mysql_install_db脚本

ubuntu系统中需要有以mysql未名城的组合用户,如果没有,请创建,使用下面的命令:

groupadd mysql

useradd -M -g mysql mysql

然后将刚才安装的MySQL文件夹的所有者赋予mysql,命令如下:

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

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

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

拷贝my.cnf文件(使用默认路径,编译安装时未指定路径):

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

编辑配置my.cnf文件(默认里面全是注释),添加:

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

进入/usr/local/mysql,执行mysql_install_db脚本,命令是:

scripts/mysql_install_db --user=mysql

(这个脚本要使用my.cnf文件,所以切换到/usr/local/mysql这个目录下执行,否则会失败)

如果不在my.cnf文件中写如basedir和datadir,执行mysql_install_db脚本的时候,就会有这样的错误:

Could not find ./bin/my_print_defaults

6, 启动MySQL

一个命令启动MySQL:

/usr/local/mysql/support-files/mysql.server start (| stop)

正常启动,几乎没有任何提供,查看进程使用ps,请见下图:

MySQL编译安装成功

MySQL编译安装成功

7, 给mysql的root账户设置一个密码

先启动mysqld进程,然后在/usr/local/mysql目录下输入:

./bin/mysqladmin -u root password 'new-password'

8, MySQL的安全设置

第7步就是最基本的安全设置,给root用户设置密码。

然后,还需要考虑的是:

(1)是否允许root用户远程访问,像云上小悟这样单机版的网站,就不需要,直接关闭;请参考:禁止MySQL root远程访问

(2)关闭MySQL服务器暴露在外面的3306端口;请参考:关闭MySQL的3306端口

关于第(2)点,如果是单机版的网站,可以直接关闭;如果有多台服务器,有专门用于跑MySQL的服务器,就不能直接关闭3306端口,安全的做法是更换MySQL的端口,并绑定可访问MySQL服务器的IP地址(分别是在my.cnf配置文件里面使用port和bind-addres命令)。

 

总有人问:我安装的MySQL使用的配置文件在哪里?或者,我的MySQL到底使用的是哪个配置文件?我们刚才安装的时候,并没有指定my.cnf的位置,默认就在主路径下面。还不满意?请参考:查看MySQL使用的配置文件my.cnf的位置?

麦新杰把MySQL的安装路径搞的有些复杂,是为了不断地重装学习,同学们在自己安装的时候,可以自由设定路径。祝安装顺利!

本文链接:http://www.maixj.net/wz/ubuntu-mysql-14621
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

《在Ubuntu中编译安装MySQL》有1条评论

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1

网站二维码
拍拍贷
go to top