[教程]centos卸载、安装mysql(源码编译安装方式)

时间:2021-05-25 16:02:07

-----------1 卸载系统自带的msyql包 
rpm -qa|grep mysql

rpm -e --nodeps mysql-server-5.1.71-1.el6.x86_64 --强制卸载mysql安装程序
rpm -e mysql-server-5.1.71-1.el6.x86_64 -- 有依赖关系,无法卸载

---------- 2 安装cmake 编译软件 mysql5.6开始不使用configure 方式 
yum -y install cmake make

---------- 3 安装mysql 的依赖包,其他linux 需要一个个软件下载 编译安装 
yum install gcc gcc-c++ autoconf bison automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* -y

---------- 4 创建mysql 目录 存放日志和数据文件等 并更改目录拥有者
mkdir /mysql 
mkdir /mysql/data
mkdir /mysql/logs
mkdir /mysql/data/socket
chown mysql.mysql -R /mysql

---------- 5 创建mysql用户并不允许登录系统
groupadd mysql 
useradd mysql -g mysql -s /sbin/nologin

---------- 6 解压(需要切换到mysql-5.6.19.tar.gz的存放目录)
tar -zxvf mysql-5.6.19.tar.gz

---------- 7 进入mysql解压目录
cd mysql-5.6.19

---------- 8 编译 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/mysql/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/mysql/data/ \
-DMYSQL_USER=root \
-DMYSQL_TCP_PORT=3306

cmake \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DWITH_INNOBASE_STORAGE_engine=1 \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DMYSQL_DATADIR=/data/mysqldb \
 -DMYSQL_TCP_PORT=3306 \
 -DENABLE_DOWNLOADS=1

--------- 9 make 安装 
make

--------- 10 make 安装 
make install

--------- 11 负载启动命令道系统启动目录 
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

--------- 12 设置为开机启动 chkconfig --list|grep mysqld 检测是否已经设置为开机启动
chkconfig mysqld on

--------- 13 复制mysql命令道系统环境变量
cp /usr/local/mysql/bin/mysql /usr/bin/mysql
cp /usr/local/mysql/bin/mysql /usr/local/bin/mysql

--------- 14 初始化mysql系统数据库 (需要回到/根目录执行)
./usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data

--------- 15 mysql 修改密码 -------------------------
> use mysql;
> UPDATE user SET password=PASSWORD('txt!@#123txt');
> FLUSH PRIVILEGES;

--------- 16 删除不必要的用于
> delete from user where host <> 'localhost';
> update user set host='%'; 
> FLUSH PRIVILEGES;

--------------------------------------------附---------------------------------------------
grant all privileges on *.* to root@'%' identified by "txt!@#123txt";

vi /etc/my.cnf

[mysqld]

innodb_file_per_table=ON
skip-name-resolve
skip-grant-tables
port=3306

wait_timeout=315360000
interactive_timeout=315360000

basedir=/usr/local/mysql

datadir=/mysql/data/

log-error=/mysql/logs/mysql.log

socket=/mysql/data/socket/mysql.sock

lower_case_table_names=1
character-set-server=utf8
open_files_limit=102400

back_log=600

max_connections=10000
max_connect_errors=6000

sort_buffer_size=2M

max_allowed_packet=64M

thread_cache_size=256
thread_concurrency=16

binlog_format = row
log-bin=mysql-bin

#innodb config
innodb_buffer_pool_size=4096M
#innodb_file_io_threads=8
innodb_read_io_threads=8
innodb_write_io_threads=8
innodb_log_buffer_size=32M
innodb_log_file_size=2048M
innodb_log_files_in_group=3
innodb_max_dirty_pages_pct=90

innodb_lock_wait_timeout=300

explicit_defaults_for_timestamp=true

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
socket=/mysql/data/socket/mysql.sock
default-character-set=utf8
port=3306