camke 安装mysql

service mysqld status 查看状态

https://www.cnblogs.com/Carr/p/7396015.html

http://blog.itpub.net/20893244/viewspace-2133137/

https://typecodes.com/web/solvemysqlcompileerror.html

安装前的准备

cmake,make,gcc,gcc-c++,bison, ncurses,ncurses-devel libaio-devel openssl openssl-devel

至于boost 还是单独的下载相应版本的安装比较好 因为之前下了最新的版本1.66不行 随后换了1.59就可以

还有设置cmake参数时boost的目录是需要明确指出的

使用下面的命令查看是否有mysql用户及用户组

cat /etc/passwd 查看用户列表 cat /etc/group 查看用户组列表

没有就创建

groupadd mysql #添加mysql用户组

useradd -r -g mysql -s /bin/false mysql #添加mysql用户

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/usr/local/mysql/data
-DSYSCONFDIR=/etc
-DMYSQL_USER=mysql
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_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=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_general_ci
-DDOWNLOAD_BOOST=1 \

-DWITH_SSL =system \

-DWITH_ZLIB=system \

-DWITH_BOOST=/usr/local/boost

-DCMAKE_INSTALL_PREFIX:安装路径
-DMYSQL_DATADIR:数据存放目录
-DWITH_BOOST:boost源码路径
-DSYSCONFDIR:my.cnf配置文件目录
-DEFAULT_CHARSET:数据库默认字符编码
-DDEFAULT_COLLATION:默认排序规则
-DENABLED_LOCAL_INFILE:允许从本文件导入数据
-DEXTRA_CHARSETS:安装所有字符集

按照这个参数执行后 终于可以安装了 参数参考地址 DCMAKE_INSTALL_PREFIX=dir_name 设置mysql安装目录 -DMYSQL_UNIX_ADDR=file_name 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock -DDEFAULT_CHARSET=charset_name 设置服务器的字符集。 缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。 -DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

存储引擎选项:

MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。

静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema) -DMYSQL_DATADIR=dir_name 设置mysql数据库文件目录 -DMYSQL_TCP_PORT=port_num 设置mysql服务器监听端口,默认为3306 -DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

https://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

然后接着执行make make install

make -j grep processor /proc/cpuinfo | wc -l

-j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时,我是真的下了这么久啊 因为我没有加这个参数 也不是特别的赶事件 所以建议童鞋们能够根据自己的服务器内核数X2加上就好了 多加了也不好

咳~ 吃饭之后回来 看到居然又报错了,

c++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See http://bugzilla.redhat.com/bugzilla for instructions. make[2]: *** [sql/CMakeFiles/sql_gis.dir/item_geofunc_setops.cc.o] Error 4 make[1]: *** [sql/CMakeFiles/sql_gis.dir/all] Error 2 make: *** [all] Error 2

百度一下,原来是说mysql5.9以后编译安装需要1G的内存,内存不够,网上给的思路是用硬盘来补

https://blog.csdn.net/haibusuanyun/article/details/16336593 参考 1.使用DD命令创建一个文件

[root@bys3 ~]# dd if=/dev/zero of=/root/swap bs=1024 count=1024000 ---这里bs=是bytes,count是 blocks 个块,这里的就是1024bytes=1K,1024000K=1000M 1024000+0 records in 1024000+0 records out 1048576000 bytes (1.0 GB) copied, 43.5605 seconds, 24.1 MB/s [root@bys3 ~]# mkswap /root/swap Setting up swapspace version 1, size = 1048571 kB [root@bys3 ~]# swapon /root/swap [root@bys3 ~]# free -m total used free shared buffers cached Mem: 2013 1864 149 0 37 1389 -/+ buffers/cache: 436 1577 Swap: 5094 0 5094 --与最开始的相比,增加了近1000M。

至此,mysql编译安装终于完成了

官方参考地址

https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options

https://blog.csdn.net/xyang81/article/details/51792144

https://blog.csdn.net/hylexus/article/details/69053881

https://blog.csdn.net/ky1in93/article/details/80110971

http://blog.51cto.com/sf1314/2105645

以上三个是我的参考网站

编译完成后首先第一步是要

初始化

然后要 配置文件及参数优化

再是 将MySQL做成系统服务 将MySQL加入环境变量

最后启动

所以我先初始化

./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

报错

./bin/mysqld: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

百度搜索是说缺少numactl 随即安装

yum -y install numactl还是报同样的错

继续百度 https://blog.csdn.net/lxpbs8851/article/details/50311493

找到这篇还是不行 最后

  1. 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下: 我在/usr/local/lib64 看到了 libssl.so.1.1 并执行以下

cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

echo "/usr/local/lib64" >> /etc/ld.so.conf

ldconfig

貌似成功 了 root@localhost: YRDkvdKw.2LE看到了这个,

自此 我的mysql8.2最新版本就安装好了

刘小明博客
请先登录后发表评论
  • latest comments
  • 总共0条评论