源码编译安装mysql 5.7.12实操

来源:互联网 发布:重庆邮电大学就业知乎 编辑:程序博客网 时间:2024/06/06 21:39
本人linux水平有限,一直没有实际操作过mysql5.7以上版本的源码编译安装,这次经过几个小时的折腾,终于成功安装mysql 5.7.12,
现将操作记录如下,以分享之!有不对之处,请大家多多指教:
环境:
一:卸载旧版本MySQL
1)检查是否安装有MySQL Server
rpm -qa | grep mysql
2)旧版本卸载掉
rpm -e mysql //普通删除模式 rpm -e --nodeps mysql // 强力删除模式,提示有依赖的其它文件,可进行强力删除
二、安装前准备
1)安装依赖包
yum -y install make gcc-c++ cmake bison* ncurses-devel libaio libaio-devel perl-Data- Dumper net-tools openssl openssl-devel
2)Boost解压目录
cd /soft
tar -zxvf /home/MySql/boost_1_59_0.tar.gz -C /usr/local
3)添加MySQL用户组及用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
4)创建MySQL安装目录及日志目录
mkdir -p /usr/local/mysql
mkdir -p /var/log/mysql
5)创建数据库数据文件目录
mkdir -p /data/mysql_{data,logs,temp}
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data
6)添加MySQL PATH路径并开放3306端口
vi /etc/profile
export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
source /etc/profile
7)关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
三、安装MYSQL
1)解压
cd /softtar -zxvf mysql-5.7.12.tar.gz
mv mysql-5.7.12 /home/mysql
2)使用cmake编译并安装MySQL
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql_data -DSYSCONFDIR=/etc - DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/usr/local/mysql.sock -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_BOOST=/usr/local/boost_1_59_0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLE_DOWNLOADS=1
make && make install

3)初始化配置
cd /usr/local/mysql
bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql

以root初始化操作时要加--user=mysql参数,生成一个随机密码(注意保存登录时用jS8odRGd(jps),在初始化时如果加上 -initial-insecure,则会创建空密码。
4)配置文件my.cnf
     在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
将默认生成的my.cnf备份
mv /etc/my.cnf /etc/my.cnf.bak
拷贝配置文件模板为新的mysql配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
修改my.cnf配置文件如下:
[mysqld]
port = 3306
socket = /usr/local/mysql/mysql.sock
pid-file = /data/mysql_data/mysql.pid
back_log = 120
max_connections = 3000
max_connect_errors = 30
max_allowed_packet = 32M
binlog_cache_size = 4M
max_heap_table_size = 128M
sort_buffer_size = 16M
join_buffer_size = 16M
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8
transaction_isolation = REPEATABLE-READ
key_buffer_size = 128M
read_buffer_size = 8M
skip_name_resolve = 1
basedir = /usr/local/mysql
datadir = /data/mysql_data
user=mysql
tmpdir = /tmp
log_error = /var/log/mysql/error.log
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
server-id = 1
[mysql]
no-auto-rehash
socket = /usr/local/mysql/mysql.sock
5)启动服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
Starting MySQL. SUCCESS!
chkconfig mysqld on
systemctl stop mysqld
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

6)重置密码
mysql -u root -p --输入前面自动生成的root密码jS8odRGd(jps
进入mysql后重置密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
7)验证
mysql -uroot -pmysql> show variables like 'character%';
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges;


原创粉丝点击