安装步骤
一、CentOS下安装
0、下载安装包
进入MySQL官网下载页面下拉到页面底部,选择Source Code 和 Generic Linux 如下图:
选择Includes Boost Headers这个包下载
cd /home wget https://dev.mysql.com/downloads/file/?id=479860 tar -zxvf mysql-8.0.11.tar.gz
1、生成编译文件
cd /home # 注意:-DWITH_BOOST路径改为自己boost的路径 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 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/mysql-8.0.11/boost
2、编译并安装
make && make install
3、修改mysql权限
chown -R mysql:mysql /usr/local/mysql
4、初始化配置
cd /usr/local/mysql/scripts ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
5、使用默认配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
6、直接启动【不推荐】
/usr/local/mysql/support-files/mysql.server start
7、拷贝服务脚本到init目录下,启动【推荐】
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql # 启动 /etc/init.d/mysql start # 查看启动状态 [root@izj6cfhaw27k49x8usszs3z ~]# /etc/init.d/mysql status MySQL running (12336) [ OK ]
8、查看MySQL服务进程
[root@izj6cfhaw27k49x8usszs3z ~]# ps aux | grep mysql root 847 0.0 0.0 115432 372 ? S Mar22 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/izj6cfhaw27k49x8usszs3z.pid root 9285 0.0 0.0 112704 972 pts/1 R+ 19:02 0:00 grep --color=auto mysql mysql 12336 0.0 19.9 941480 202528 ? Sl Nov17 8:54 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysql/mysqld.log --pid-file=/usr/local/mysql/data/izj6cfhaw27k49x8usszs3z.pid --socket=/var/lib/mysql/mysql.sock
参数说明:【参数值默认值在启动脚本指定,可以通过/etc/my.cnf修改】
a、MySQL按照目录
–basedir=/usr/local/mysql
b、MySQL数据库文件存放目录
–datadir=/usr/local/mysql/data
c、插件目录
–plugin-dir=/usr/local/mysql/lib/plugin
d、用户名
–user=mysql
e、错误日志
–log-error=/var/log/mysql/mysqld.log
f、进程ID存放文件
–pid-file=/usr/local/mysql/data/izj6cfhaw27k49x8usszs3z.pid
g、mysql.sock文件的路径
–socket=/var/lib/mysql/mysql.sock
你会看到有两个守护进程,mysqld和mysqld_safe。mysqld是MySQL服务进程,这个好理解,那么mysql_safe呢,是如何启动的,干啥用的?
打开/etc/init.d/mysql文件,搜索mysqld_safe我们会看到如下代码
elif test -x $bindir/mysqld_safe then # Give extra arguments to mysqld with the my.cnf file. This script # may be overwritten at next upgrade. pid_file=$server_pid_file $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 & wait_for_pid created $!; return_value=$?
很显然在执行/etc/init.d/mysql start的时候,同时启动了mysqld和mysqld_safe。其实mysqld_safe这个守护进程是一个monitor角色,他会检测mysqld进程,如何mysqld挂了,会尝试拉起。
9、多实例的启动方式
在/usr/local/mysql/support-files目录下有一个mysqld_multi脚本,是用了启动多个MySQL实例的,这里就先不展开了。如果需要的话可以自行Google。
10、编译过程中的问题
二、MacOS下安装
1、推荐用brew安装,参考简书:mac 安装mysql详细教程