1.下载mysql源码:
备注:至于想以什么方式下载都无所谓,总之得到源码就可以了~
2.确认需要的开发工具的版本,都要满足mysql安装版本的需要
Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.
cmake 3.75+,
gcc 4.21+,
perl if you intend to run test scripts
3.创建mysql的安装目录 mysql
mkdir mysql526
备注:一般在虚拟机、测试环境、开发机、服务器上安装的时候都不会直接使用root权限进行安装,因为使用普通用户安装会降低服务器的风险,但是同时也带来了一个问题,就是对于默认的安装路径下我们没有读写权限,这时候按照官方简易的文档安装就会失败,或者出现各种各样的无法连接、无法启动等错误
此处的方法是用普通用户权限进行安装
4.创建几个相应的文件夹:tmp, var, etc,
cd mysql526 mkdir tmp var etc
5.执行cmake创建makefile
cmake . -DCMAKE_INSTALL_PREFIX=/home/work/mysql526 -DEFAULT_CHARSET=utf8 -DEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/home/work/mysql526/tmp/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DTMPDIR=/home/work/mysql526/log/
-DCMAKE_INSTALL_PREFIX:相当于安装的根目录,其余的一些配置,都会安装在PREFIX/下。比如PREFIX/BIN,等等 -DEFAULT_CHARSET:默认编码 -DEFAULT_COLLATION=utf8_general_ci:默认排序方式 -DMYSQL_UNIX_ADDR=/home/work/mysql526/tmp/mysql.sock:连接mysql使用的socket文件,此处很关键! -DWITH_INNOBASE_STORAGE_ENGINE=1:使用innodb引擎 -DTMPDIR=/home/work/mysql526/log/:指定tmp文件夹路径,一般tmp中包含mysql.sock,log,pid等配置 -MYSQL_TCP_PORT=3306:TCP/IP port number, and Unix socket file can be changed at server startup with the --basedir, --port, and --socket options for mysqld. Where applicable,
注:此处如果报错:可以查看CMakeCache.txt,
CMakeFiles/CMakeError.log
and
CMakeFiles/CMakeOutput.log
under the
build directory
解决错误后,执行rm CMakeCache.txt,然后再次cmake重新配置
注:如果MYSQL_MAINTAINER_MODE 配置是enable的,它会将warn变成error,可以disable这个选项,再编译
doc:If compilation fails, check whether the
MYSQL_MAINTAINER_MODE option is enabled. This mode causes
compiler warnings to become errors, so disabling it may
enable compilation to proceed.
下载地址:https://cmake.org/download/
https://cmake.org/files/v3.4/cmake-3.4.0-rc1.tar.gz
6.执行make编译:
make
注:如果此处出错,需要先执行make clean,再执行rm CMakeCache.txt,然后在重新cmake----make
注:如果make失败:并且提示了如下信息的任意一种:表明make的版本过低,升级GNU的make去吧。3.75+
#1:make: Fatal error in reader: Makefile, line 18:
Badly formed macro assignment
#2:pthread.h: No such file or directory
#3:make: file `Makefile' line 18: Must be a separator (:
7.执行安装
make install
注:make install 也可以指定路径,但是如果你已经在cmake的时候指定了 -DCMAKE_INSTALL_PREFIX参数,就不要在这里再指定了。。
make install DESTDIR="/some/absolute/path"
8.准备mysql的配置文件:关于my.cnf的配置请参考下一章,这里先凑合用
cp support-files/my-default.cnf etc/my.cnf //****my-default.cnf是空白的,都得自己配置,如果my-medium.cnf要是没有,就去偷一个吧
或者 cp /home/work/mysql526/support-files/my-medium.cnf /home/work/mysql526/etc/my.cnf
9.编辑my.cnf,配置相关参数的路径
或者 cp /home/work/mysql526/support-files/my-medium.cnf /home/work/mysql526/etc/my.cnf
# The MySQL server 26 [mysqld] 27 port = 3306 28 /home/work/mysql526/tmp/mysql.sock 29 log-error =/home/work/mysql526/log/mysql.err 30 pid-file =/home/work/mysql526/tmp/mysql.pid
10. 配置环境变量:
TMPDIR=/home/work/mysql5/tmp/ MYSQL_UNIX_PORT=/home/work/mysql5/tmp/mysql.sock export TMPDIR MYSQL_UNIX_PORT
11.数据初始化:需要Perl。如果没有也需要安装,yum install perl 然后还得安装yum install perl-Data-Dumper
记得指定参数,要读取我们刚刚配置的my.cnf配置文件,否则白折腾了,user就是你的用户名,数据初始化结束后,去data目录下能看到多了test以外的数据文件
scripts/mysql_install_db --defaults-file=/home/work/mysql526/etc/my.cnf --user=work --basedir=/home/work/mysql526/ --datadir=/home/work/mysql526/data/
13.安全 守护进程 启动msyql ------ 至于为啥带my.cnf参数,请参考下一章
--help : 带my.cnf参数启动,配置各种权限 //**这个还必须要指定这个配置参数
/home/work/mysql526/bin/mysqld_safe --defaults-file=/home/work/mysql526/etc/my.cnf
14.设置密码
1./home/work/mysql526//bin/mysqladmin -u root password 设置密码:xxx123
2./home/work/mysql526//bin/mysqladmin -u root -h cp01-vm-epc-wiseapp5.epc.com password 设置密码:xxx123
18.常见问题:
15.执行product环境清理工作,提高安全性
在product环境执行:
/home/work/mysql526//bin/mysql_secure_installation
16.配置指定的IP可以访问:
配置
10.126.107.119
使用root,xxx123连接,
GRANT ALL PRIVILEGES ON *.* TO 'root'@'
10.126.107.119' IDENTIFIED BY 'xxx123' WITH GRANT OPTION;
flush privileges;
//---别忘记了。。否则又蒙圈
注:
For boolean options, the value may be specified as 1 or ON to enable the option, or as 0 or OFF to disable the option
17.mysql -uroot -p .............没了。。。。附加一页文档:
http://dev.mysql.com/doc/internals/en/cmake-howto-detailed.html
18.常见问题:
1. 报错:CMAKE_CXX_COMPILER-NOTFOUND
需要安装g++
yum install g++
2. 报错:Curses library not found
yum install ncurses-devel