CentOs下MySQL5.6.32源码安装

时间:2021-07-29 22:22:21
. 安装好--安装MySQL需要的包
yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison ncurses5-devel ncurses-devel autoconf .
[root@localhost ~]# cd /usr/local/src
//下载MySQL源码包
[root@localhost src]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33.tar.gz
[root@localhost src]# ls
mysql-5.6..tar.gz
[root@localhost src]# tar zxvf mysql-5.6..tar.gz
[root@localhost src]# mv mysql-5.6.33 ..
[root@localhost src]# cd ..
[root@localhost src]# mv mysql-5.6.33 mysql
#这一步很重要,一定确定路径正确
第一步:
[root@localhost mysql-5.6.]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
第二步: 
[root@localhost mysql-5.6.]# make && make install
# 启动前的工作
 groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/
#如果/etc下面没有my.cnf 那么将mysql安装目录下的my.cnf-default复制过去
mv /etc/my.cnf /etc/my.cnf.default

 # 初始化脚本生成临时密码 这里也是 对应的路径和上面一直并且和/etc/my.cnf文件夹配置内容一直 否则启动不了
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql
# 启动 /usr/local/mysql/support-files/mysql.server start
# 登陆 /usr/local/mysql/bin/mysql -u root # 初次登陆 直接回车
# 重置系统生成的临时密码以及设置权限(如果不修改,则不能正常使用 MySQL) SET PASSWORD = PASSWORD('');
#授权 让root在其他主机都可以登录
GRANT ALL ON *.* to root@"%" IDENTIFIED BY "";
9 将相应用户数据表中的host字段改成'%';  update user set host='%' where user='root';

  ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 不予理会

  flush privileges;

 #创建systemctl管理mysql的配置文件:
#创建配置文件
touch /usr/lib/systemd/system/mysql.service
#打开配置文件
vim /usr/lib/systemd/system/mysql.service [Unit]
Description=MySQL Server
Documentation=man:mysqld()
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target [Install]
WantedBy=multi-user.target [Service]
User=mysql
Group=mysql
Type=forking
#这里目录选择自己的mysql安装时相应目录
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/usr/local/mysql/support-files/mysql.server restart
ExecStop=/usr/local/mysql/support-files/mysql.server stop
PrivateTmp=true
LimitNOFILE = 5000 
 #最后 设置开机启动
[root@localhost mysql]# systemctl enable mysql
Created symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service.
折腾了半天,大功告成!