赞
踩
此文所述编译安装流程,在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编译安装成功
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的安装路径搞的有些复杂,是为了不断地重装学习,同学们在自己安装的时候,可以自由设定路径。祝安装顺利!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。