之前对 Apache 2.4 进行了编译安装,详情见《编译安装LAMP:Apache篇》。接着,我们继续安装数据库。
现在用的比较多的是由 Oracle 团队开发维护的 MySQL,和由原 MySQL 团队开发维护的 MariaDB,这里我依旧选择 MySQL 数据库。
一、用 root 用户连接上主机
二、下载 MySQL Community Server
可以在 MySQL 的官网下载最新的 5.6
版本的 MySQL(GA),5.7
版 MySQL 在安装配置方面与 5.6
有些许变化。选择时选 Source Code
,找到最下面的 Generic Linux
,文件格式为 mysql-版本.tar.gz
。本文以 mysql-5.6.30 为例,使用时请使用最新版,命令只要替换版本号就行了。
可以通过 Tag 看看有没有关于 MySQL 5.7
的博文…
cd /usr/local/src wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz tar -zxf mysql-5.6.30.tar.gz
三、编译安装 MySQL Community Server
MySQL 的编译安装时间比较长,经过了漫长的 5 分钟等待,MySQL 终于编译安装完成了。
神马?你说你编译花了半个多小时?你用了几个核心呢?E3 8 核只要 5 分钟╮( ̄▽ ̄)╭
我们使用 cmake
命令编译 MySQL,本文 MySQL 安装在 /usr/local/mysql
目录。
cd /usr/local/src/mysql-5.6.30 groupadd mysql useradd -s /sbin/nologin -M -g mysql mysql #为mysql添加用户和组 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_EMBEDDED_SERVER=1 make make install
更多关于 cmake
编译 MySQL 的选项,请参考官方文档和 maxchen’s blog(艹,我就知道别人的博客不靠谱,随随便便就没了…还是自己写靠谱)。
四、设置 MySQL
经过一段时间的安装,把 MySQL 安装完成,接下来就需要对 MySQL 进行配置了。
chown -R mysql:mysql /usr/local/mysql #把mysql文件夹的所有者和所有组都设置为mysql cat > /etc/my.cnf << EOF [client] #password = your_password port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 basedir = /usr/local/mysql datadir = /usr/local/mysql/data pid-file = /usr/local/mysql/data/mysql.pid character-set-server = utf8 skip-external-locking key_buffer_size = 16M sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M query_cache_size = 64M query_cache_limit = 4M table_open_cache = 64 skip-name-resolve server-id = 1 #max_connections = 1000 max_allowed_packet = 16M [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout EOF #以上一大段重写了/etc/my.cnf文件 /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql #初始化配置脚本,添加系统数据库 cp -f /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #拷贝服务脚本到/etc/init.d/ chkconfig --add mysqld #将mysqld设置为服务 chkconfig mysqld on #将httpd的2、3、4、5运行级设置为On,即开机启动 echo "export PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profile source /etc/profile #将mysql的可执行文件路径注册到环境变量,即直接输入mysql就能登陆mysql cat > /etc/ld.so.conf.d/mysql.conf << EOF /usr/local/mysql/lib EOF #添加动态库的缓存 ldconfig #使上述更改生效
UPDATE:博主发现,原本的 my.cnf 会导致 mysqld 服务无法启动,这情况不是每台服务器都会发生的,我在 Azure 的服务器上配置完全没问题,但是在 DO 的服务器上就一直报错。原因是在 max_connections = 1000
这一条上,这条配置原本是设置 MySQL 的最大连接数的,但是很奇怪的,它使得我在 DO 的服务器上的 MySQL 服务无法启动。不明觉厉啊…
五、启动 MySQL
MySQL 的启动、关闭、重启、状态命令:/etc/init.d/mysqld (start|stop|restart|status)
/etc/init.d/mysqld start
一般情况下 MySQL 都能正常启动,至少按照博主的方法来是会成功的,如果有问题请留言。
六、MySQL 安全设置
这里新开了一篇博文来写 MySQL 的安全设置:《MySQL安全设置》
相关文章:《编译安装LAMP:Apache篇》、《编译安装LAMP:PHP篇》
本文的安装方法结合了http://teddysun.com/lamp的方法。
原创文章,转载请以链接形式注明出处:https://blog.ttionya.com/article-463.html