在之前,我写了两篇关于编译安装Nginx和PHP的文章,全部手动编译。
以后可以使用那些一键的脚本,但是要明白一些底层的操作,以后才能更得心应手。一味的用那些面板、一键安装脚本,并不是一个很好的选择。
动手安装一遍,并记录一篇文章,然后以后若忘了,翻一翻文章,也就想起了。挺好。
官网地址:https://dev.mysql.com/downloads/mysql/
官网现在首页是8.x的版本,若要使用5.7,得经历一番步骤:
A. 选择Source Code
B. 选择Source Code后,选择Generic Linux(Architecture Independent)
C. 点击右侧的:Looking for previous GA versions?
,因为首页默认是8.x版本的:
D.
E. No thanks, just start my download.
右键复制以上的链接,或者下载到本地电脑,再上传到Linux运行。
嗯,你也可以直接运行以下命令,下载5.7.x版本: wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.28.tar.gz 以上也是官网地址。2333
useradd -s /sbin/nologin mysql
我们还是单独使用一个用户来管理mysql
mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql
将下载好的mysql 解压到/usr/local/mysql
目录下
mkdir /usr/local/mysql # 创建mysql安装的目录,有则不创建
tar -zxvf mysql-boost-5.7.28.tar.gz -C /usr/local/mysql/
进入目录
cd /usr/local/mysql # 切换到mysql 安装目录
cd mysql-5.7.28 # /usr/local/mysql 目录里面还有一个mysql-5.7.28 ,所以我们还需要进入
cmake
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
还记得么,我们下载源码时,选择了带boost的版本,所以这里后面有个
-DWITH_BOOST=boost
,5.7后的版本,必须带这个参数,如果我们没选择带boost的版本,这里可能还要麻烦点。
编译安装
make && make install
编译中,时间稍微有点长【不是一般的长....,可能我虚拟机配置不是很好】
可能我虚拟机给的配置确实不行,这一步过了1个多小时 此步完成界面:
安装好了的/usr/local/mysql
目录:
( 没有则创建)
vi /etc/my.cnf
有的话,应该有一些默认配置,然后贴一下网上找到的配置:
你可选择删除默认配置,粘贴以下配置。或自己配置。 以下配置内容非必须,可依据实际情况,做相应的调整!
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/data
pid-file = /data/mysql/mysql.pid
log_error = /data/mysql/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql-slow.log
skip-external-locking
key_buffer_size = 32M
max_allowed_packet = 1024M
table_open_cache = 128
sort_buffer_size = 768K
net_buffer_length = 8K
read_buffer_size = 768K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size = 16M
tmp_table_size = 32M
performance_schema_max_table_instances = 1000
explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
log_bin=mysql-bin
binlog_format=mixed
server_id = 232
expire_logs_days = 10
early-plugin-load = ""
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 768K
read_buffer = 2M
write_buffer = 2M
把安装目录用户和组更改为mysql【mysql用户和组为之前创建的】
chown -R mysql:mysql mysql
执行以上命令是在/usr/local目录,然后改目录下有你之前创建的mysql安装目录。如下:
把数据库数据目录用户和组更改为mysql ( 数据库数据目录:/data/mysql/data),方法同上! cd /data/mysql chown -R mysql:mysql data
cd /usr/local/mysql/bin # 进入bin执行文件目录
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data # 执行初始化命令
注:网上网友说到这一步很容易出问题,在初始化的时候一定要加上面的参数,而且在执行这一步操作前/data/mysql/data 这个目录必须是空的;在这里指定的basedir 和 datadir 目录必须要和/etc/my.cnf 配置的目录一直才行。如下:
初始化,没报错说明成功了:
cd support-files # 此命令在/usr/local/mysql目录下执行
cp mysql.server /etc/init.d/mysqld
service mysqld start
service 命令找的文件就是
/etc/init.d/
目录下的可执行文件,这也是上一步操作的原因。
./mysql -hlocalhost -uroot -p
# 这一步命令执行是在 /usr/local/mysql/bin 目录下,这也是我在写文章时经常强调的。
# 目录不对,这是一些新手用户在参考你的文章时,运行同样的命令,一直报错的重要原因之一。
在/etc/profile 中新增一行
PATH=$PATH:/usr/local/mysql/bin
export PATH
保存退出,刷新生效:
source /etc/profile
systemctl enable mysqld
好了,至此mysql也配置好了。
以后的一篇可能就是nginx结合。
本篇文章全部实际操作,一步步截图,如有转载,请务必注明本站出处。 本文参考: https://blog.csdn.net/sssssscccccc/article/details/80919826 https://blog.csdn.net/zhang_referee/article/details/88212695