Linux笔记-centos7源码安装Mysql5.6(图解详细)

关闭centos7防火墙

查看防火墙命令及关闭防火墙及永久关闭防火墙

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

Linux上创建一个mysql的用户名和组

groupadd mysql
useradd -d /home/mysql -g mysql -m mysql

修改linux中mysql用户密码:

passwd mysql

查看下linux中mysql用户的相关id

id mysql

切换到mysql用户并配置环境变量。这里我们把mysql安装到/u01/my3306/bin下面

su -mysql
vim .bash_profile

添加环境变量内容如下:

加一个/u01/mysql3306/bin

重新加载shell,让其立即生效

source .bash_profile

下面是创建一些目录,用于放数据文件、日志文件、service层日志、运行时的pid、临时文件

这里要先切换到root用户

mkdir -p /u01/mysql3306/data
mkdir -p /u01/mysql3306/log/iblog
mkdir -p /u01/mysql3306/log/binlog
mkdir -p /u01/mysql3306/run
mkdir -p /u01/mysql3306/tmp

授予linux用户组mysql和用户mysql相关权限

chown -R mysql:mysql /u01/mysql3306
chown -R 755 /u01/mysql3306

下载好源码后

使用rz把文件传到/u01目录下:

解压然后进入:

tar -zxvf mysql-5.6.35.tar.gz
cd mysql-5.6.35

安装cmake相关软件

yum install -y  cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl openssl-devel

随后使用cmake:

cmake \
-DCMAKE_INSTALL_PREFIX=/u01/mysql3306 \
-DINSTALL_DATADIR=/u01/mysql3306/data  \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/u01/mysql3306/run/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on

如果提示SSL找不到的话如下错误:

Cannot find appropriate system libraries for SSL

要程序下载openssl二进制安装包。下载好后,同样使用rz放到linux上,然后tar,即可

执行如下命令:

./config --prefix=/usr/local/openssl -fPIC no-gost no-shared no-zlib
make depend
./config -t
make && make install

注意不要安装新版本,不然mysql5.6会编译不通过。我这里用的是1.0.1u

完成了后替换一起的openssl

cd /usr/local
ldd /usr/local/openssl/bin/openssl

修改root环境变量并让其生效

vim /root/.bash_profile
source /root/.bash_profile

查看下:

which openssl

如果还是/bin/openssl将其删掉就可以了。

随后将CmakeCache.txt删掉

rm -f CMakeCache.txt

然后将命令改为:

cmake \
-DCMAKE_INSTALL_PREFIX=/u01/mysql3306 \
-DINSTALL_DATADIR=/u01/mysql3306/data  \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/u01/mysql3306/run/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on \
-DOPENSSL_ROOT_DIR=/usr/local/openssl \
-DOPENSSL_LIBRARIES=/usr/local/openssl/lib 

随后安装,并将编译好的文件其移动到相关目录

make && make install

如下:

为文件夹授予权限及添加my.conf对mysql进行初始化:

chown -R mysql:mysql /u01/mysql3306

把文件上传到/u01/mysql3306,文件名为my.cnf

内容如下:

[client]
port=3306
socket=/u01/mysql3306/mysql.sock

[mysql]
pid_file=/u01/mysql3306/run/mysqld.pid

[mysqld]
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true

# system
basedir=/u01/mysql3306
datadir=/u01/mysql3306/data
max_allowed_packet=1g
max_connections=3000
max_user_connections=2800
open_files_limit=65535
pid_file=/u01/mysql3306/run/mysqld.pid
port=3306
server_id=101
skip_name_resolve=ON
socket=/u01/mysql3306/run/mysql.sock
tmpdir=/u01/mysql3306/tmp

#binlog
log_bin=/u01/mysql3306/log/binlog/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=7
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=100

#logging
log_error=/u01/mysql3306/log/error.log
slow_query_log_file=/u01/mysql3306/log/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#relay
relay_log=/u01/mysql3306/log/relaylog
relay_log_index=/u01/mysql3306/log/relay.index
relay_log_info_file=/u01/mysql3306/log/relay-log.info

#slave
slave_load_tmpdir=/u01/mysql3306/tmp
slave_skip_errors=OFF


#innodb
innodb_data_home_dir=/u01/mysql3306/log/iblog
innodb_log_group_home_dir=/u01/mysql3306/log/iblog
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_change_buffering=inserts
innodb_checksums=ON
innodb_buffer_pool_size= 128M
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=67108864
innodb_log_file_size=1048576000
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe]
datadir=/u01/mysql3306/data

随后初始化mysql

./scripts/mysql_install_db --defaults-file=/u01/mysql3306/my.cnf --datadir=/u01/mysql3306/data -user=mysql

如果有错误,可以看日志看错误。下面启动mysql

给linux下的mysql组权限,并切换到mysql用户,然后启动:

chown -R mysql:mysql /u01/mysql3306
su mysql
mysql
或者
mysql -hlocalhost -uroot

发布了1323 篇原创文章 · 获赞 5023 · 访问量 205万+

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/105253032