Mysql之源码安装

来源:互联网 发布:中文网络搜索引擎名称 编辑:程序博客网 时间:2024/06/05 11:10
#!/bin/bash
installdir=/usr/local/mysql
mysqldatadir=/var/lib/mysql
mysqlrootpwd=0018$0018bB

#install  depend  packages
yum  -y  install  gcc  make  cmake  ncurses-devel  libxm12-devel  libtool-ltdl-devel  gcc-c++  autoconf  automake  bison  zlib-devel

#create   user and  group
groupadd  mysql
useradd  -r -s  /sbin/nologin   -g  mysql  mysql
mkdir -p   $installdir
mkdir -p   $mysqldatadir
chown    mysql.mysql -R   $mysqldatadir

#download  and  install    mysql
cd /root
tar  -xzf  mysql-5.6.13.tar.gz
cd  mysql-5.6.13

cmake  .  -DCMAKE_INSTALL_PREFIX=$installdir   -DMYSQL_DATADIR=$mysqldatadir     -DMYSQL_UNIX_ADDR=$mysqldatadir/mysqld_sock      -DSYSCONFDR=/etc/          -DEXTRA_CHARSETS=all         -DDEFAULT_CHARSET=utf8            -DDEFAULT_CONLIATION=utf8_general_ci      -DWITH_INNOBASE_STORAGE_ENGINE=1         -DWITH_MYISAM_STORAGE_ENGINE=1        -DWITH_BLACKHOLE_STORAGE_ENGINE=1       -DENABLED_LOCAL_INFILE=1         -DMYSQL_TCP_PORT=3306      -DWITH_DEBUG=0                         
make  &&  make install

#   mysql5.5以后就要使用cmake来编译了
#  -DCMAKE_INSTALL_PREFIX=   存放安装路径
#  -DMYSQL_DATADIR=  数据文件存放位置
#  -DMYSQL_UNIX_ADDR= 连接数据库socket路径  数据库一启动就会有这个文件
#  -DSYSCONFDR=     my.cnf路径
#  -DEXTRA_CHARSETS=all    安装所有的扩展字符集
#  -DDEFAULT_CHARSET=utf8  默认 utf8 字符
#  -DDEFAULT_CONLIATION=utf8_general_ci    校验字符
#  -DWITH_INNOBASE_STORAGE_ENGINE=1        支持InnoDB引擎
#  -DWITH_MYISAM_STORAGE_ENGINE=1          支持MyIASM引擎
#  -DWITH_BLACKHOLE_STORAGE_ENGINE=1       支持Blackhole引擎
#  -DENABLED_LOCAL_INFILE=1                允许从本地导入数据
#  -DMYSQL_TCP_PORT=3306                    端口


#change    mysql  service   PATH 
chown  -R  mysql.mysql    $installdir  
/bin/cp  support-files/my-default.cnf    /etc/my.cnf
/bin/cp  support-files/mysql.server      /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig  --add mysqld
chkconfig   mysqld  on
echo  "export  PATH=$PATH:$installdir/bin/ "  >>  /etc/profile

# change  my.cnf  configure
cat > /etc/my.cnf << EOF
[mysqld]
basedir = $installdir
datadir = $mysqldatadir
character-set-server=utf8
collation-server=utf8_general_ci
user=mysql
port = 3306
default_storage_engine = InnoDB
server_id = 1
log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7
bind-address = 0.0.0.0

# name-resolve
skip-name-resolve
skip-host-cache

#lower_case_table_names = 1
ft_min_word_len = 1
query_cache_size = 64M
query_cache_type = 1

skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K

# LOG
log_error = $mysqldatadir/mysql-error.log
long_query_time = 1
slow_query_log
slow_query_log_file = $mysqldatadir/mysql-slow.log

# Oher
explicit_defaults_for_timestamp=true
#max_connections = 1000
open_files_limit = 65535
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
port = 3306
password = 0018$0018bB
EOF

# Initalization  Mysql   Service

$installdir/scripts/mysql_install_db   --user=mysql  --datadir=$mysqldatadir      --basedir=$installdir

                   

# start  mysql  service
/sbin/service mysqld   start
$installdir/bin/mysql -e  "grant all privileges on *.* to root@'127.0.0.1' identified by\"$mysqlrootpwd\" with grant option;"
$installdir/bin/mysql -e  "grant all privileges on *.* to root@'localhost' identified by\"$mysqlrootpwd\" with grant option;"
$installdir/bin/mysql -uroot  -p$mysqlrootpwd -e "delete from mysql.user where Password='';"
$installdir/bin/mysql -uroot  -p$mysqlrootpwd -e "drop database test;"
/sbin/service  mysqld restart



0 0
原创粉丝点击