一.准备
如果缺了什么依赖直接安装就好.....
- 下载源码
去官网下载source code
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.15.tar.gz
2.创建群组和用户名
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
useradd 命令作用
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;
-G<群组>:指定用户所属的附加群组;
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户[id](http://man.linuxde.net/id "id命令")。
- 创建安装和数据目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysqldata
顺便授权
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysqldata
chmod 755 /usr/local/mysql -R
chmod 755 /data/mysqldata -R
二、安装
- 解压
tar -xvf
2.编译安装
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html 编译参数含义可以看看官方文档
这里的参数看个人而定
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysqldata -DSYSCONFDIR=/etc/mysql -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/mysql-8.0.11/boost -DDEFAULT_CHARSET=utf8 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1
我安装的时候有提示boost没装,所以加多一个参数
-DDOWNLOAD_BOOST=1
实际对应含义
-DCMAKE_INSTALL_PREFIX= 指向mysql安装目录
-DINSTALL_SBINDIR=sbin 指向可执行文件目录(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql 指向mysql数据文件目录(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql 指向mysql配置文件目录(/etc/mysql)
-DMYSQL_TCP_PORT=3306 指定TCP端口为3306
-DDEFAULT_CHARSET=utf8 指定默认的字符集为utf8
这里不允许当前目录直接安装。。。
This is because you ran "cmake ." in the top of the source tree. The reason for preventing you running cmake in the source directory is to prevent the source tree getting build artefacts spewed all over it.
stackoverflow上找到的解释
https://stackoverflow.com/questions/4669215/cmake-compilation-error?rq=1
所以就这样搞
rm CMakeCache.txt
mkdir build
cd build
cmake ..(要多加个点,make的是上层目录)
make
- 安装
cmake后是提示
Build files have been written to: <目录名>
所以进去那个目录
make
make install
然后我make各种失败,在装bison,还有devtoolset,gcc啥的
这里我make一直有err,后面是参考网上的,还没实际跑过,等后续更新了再写……
- 配置my.cnf文件
[mysqld]
server-id=1
port=3306
basedir=/usr/local/mysql
datadir=/data/mysqldata
##请根据实际情况添加参数
- 初始化&启动
bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
bin/mysql_ssl_rsa_setup
启动
bin/mysqld_safe --user=mysql &
- 其他
修改密码
bin/mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by "hollow";
可以创建远程账户
msyql> create user root@'%' identified by 'hollow';
mysql> grant all privileges on *.* to root@'%';
mysql> flush privileges //用来刷新系统权限表
软链
ln -s /usr/local/mysql/bin/* /usr/local/bin/
启动设置
cp support-files/mysql.server /etc/init.d/mysql.server