安装步骤
一、CentOS下安装
0、下载安装包
进入MySQL官网下载页面下拉到页面底部,选择Source Code 和 Generic Linux 如下图:
选择Includes Boost Headers这个包下载
1 2 3 | cd /home wget https: //dev .mysql.com /downloads/file/ ? id =479860 tar -zxvf mysql-8.0.11. tar .gz |
1、生成编译文件
1 2 3 | 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、编译并安装
1 | make && make install |
3、修改mysql权限
1 | chown -R mysql:mysql /usr/local/mysql |
4、初始化配置
1 2 | cd /usr/local/mysql/scripts . /mysql_install_db --user=mysql --basedir= /usr/local/mysql --datadir= /usr/local/mysql/data |
5、使用默认配置文件
1 | cp /usr/local/mysql/support-files/my-default .cnf /etc/my .cnf |
6、直接启动【不推荐】
1 | /usr/local/mysql/support-files/mysql .server start |
7、拷贝服务脚本到init目录下,启动【推荐】
1 2 3 4 5 6 7 8 | 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服务进程
1 2 3 4 | [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我们会看到如下代码
1 2 3 4 5 6 7 | 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详细教程