1.下载源码包
网址:https://downloads.mysql.com/archives/community/
这里选择Source Code 选择适合版本的tar.gz后缀下载
2.解压
将下载的mysql上传到Linux后
[root@localhost ~]# tar -zxvf mysql-5.7.20
3.下载boost以及解压boost
boost是编译时必须依赖的库,下载比较慢,分享我自己的连接
http://链接: https://pan.baidu.com/s/1m1of3MtdALz14gJwEiwkIQ 提取码: i9kj 复制这段内容后打开百度网盘手机App,操作更方便我用的是1_59版本
下载后上传到Linux后解压到/usr/local/boost
4.安装gcc-c++等环境依赖
yum install -y cmake
yum install -y ncurses*
yum install gcc gcc-c++ -y
yum install -y bison
5.准备工作
在系统中创建用户 [root@localhost ~]# useradd -s /sbin/nologin mysql
给/usr/local/mysql/目录设置所属者和所属组:chown -R mysql:mysql /usr/local/mysql/
创建/data/mysql/data 目录:mkdir -r /data/mysql/data
给/data/mysql目录设置所属者和所属组:chown -R mysql:mysql /data/mysql
6.cmake配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT='Mysqlma' -DWITH_READLINE=ON -DWITH_BOOST=/usr/local/boost -DSYSCONFDIR=/data/mysqldata/3306 -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock
7.开始编译
make&make install
8.设置 /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
user = mysql
skip-grant-tables
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
9.初始化
到MySQL的bin目录:cd /usr/local/mysql/bin
开始初始化:
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
初始化时设置的datadir目录里面一定要为空,否则初始化失败
10.优化设置
拷贝执行文件到开机项
到 support-files目录:cd ../support-files/
cp mysql.server /etc/init.d/mysqld
开启服务:systemctl enable mysqld
添加环境变量:
在 /etc/profile 文件后面添加:PATH=/usr/local/mysql/bin:$PATH
刷新环境变量:source /etc/profile
11.登录
登录mysql: mysql -u root -p
输入密码时直接回车,没有密码
12.修改密码:
update mysql.user set authentication_string=password('root')
where User="root" and Host="localhost";
不同版本修改密码格式不同,可以自行百度。