加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

安装MySQL-5.5.49流程及配置多示例

发布时间:2023-08-15 14:47:37 所属栏目:MySql教程 来源:
导读:下文内容主要给大家带来安装MySQL-5.5.49流程及配置多实例,所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

安装MyS
下文内容主要给大家带来安装MySQL-5.5.49流程及配置多实例,所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
 
安装MySQL-5.5.49
 
安装包的获取:http://mirrors.sohu.com/mysql/
 
# 安装MySQL需要的依赖包
 
yum install ncurses-devel libaio-devel -y
 
rpm -qa  ncurses-devel libaio-devel
 
# 安装编译MySQL需要的软件
 
yum install cmake -y
 
rpm -qa cmake
 
# 创建用户
 
useradd mysql -u 777 -s /sbin/nologin -M
 
id mysql
 
安装MySQL-5.5.49流程及配置多实例
 
上传MySQL包,解压
 
mkdir -p /home/oldboy/tools
 
cd /home/oldboy/tools
 
rz -y #mysql-5.5.49.tar.gz
 
ll -sh
 
tar xf mysql-5.5.49.tar.gz
 
cd mysql-5.5.49
 
编译安装
 
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.49 \
 
-DMYSQL_DATADIR=/application/mysql-5.5.49/data \
 
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.49/tmp/mysql.sock \
 
-DDEFAULT_CHARSET=utf8 \
 
-DDEFAULT_COLLATION=utf8_general_ci \
 
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
 
-DENABLED_LOCAL_INFILE=ON \
 
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
 
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
 
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
 
-DWITH_FAST_MUTEXES=1 \
 
-DWITH_ZLIB=bundled \
 
-DENABLED_LOCAL_INFILE=1 \
 
-DWITH_READLINE=1 \
 
-DWITH_EMBEDDED_SERVER=1 \
 
-DWITH_DEBUG=0
 
make && make install && echo $?
 
cd ..
 
创建软链接
 
ln -s /application/mysql-5.5.49/ /application/mysql
 
配置多实例
 
创建数据库文件目录,配置文件
 
mkdir -p /data/{3306,3307}/data
 
touch /data/{3306,3307}/{mysql,my.cnf}
 
tree /data/
 
/data/
 
├── 3306#<==实例3306
 
│   ├── data#<==3306数据库文件目录
 
│   ├── my.cnf#<==3306配置文件
 
│   └── mysql#<==3306启动脚本
 
└── 3307#<==实例3307
 
    ├── data#<==3307数据库文件目录
 
    ├── my.cnf#<==3307配置文件
 
    └── mysql#<==3307启动脚本
 
实例3306配置文件
 
vim /data/3306/my.cnf
 
[client]
 
port            = 3306
 
socket          = /data/3306/mysql.sock
 
[mysql]
 
no-auto-rehash
 
[mysqld]
 
user    = mysql
 
port    = 3306
 
socket  = /data/3306/mysql.sock
 
basedir = /application/mysql
 
datadir = /data/3306/data
 
open_files_limit = 1024
 
back_log = 600
 
max_connections = 800
 
max_connect_errors = 3000
 
table_cache = 614
 
external-locking = FALSE
 
max_allowed_packet =8M
 
sort_buffer_size = 1M
 
join_buffer_size = 1M
 
thread_cache_size = 100
 
thread_concurrency = 2
 
query_cache_size = 2M
 
query_cache_limit = 1M
 
query_cache_min_res_unit = 2k
 
#default_table_type = InnoDB
 
thread_stack = 192K
 
#transaction_isolation = READ-COMMITTED
 
tmp_table_size = 2M
 
max_heap_table_size = 2M
 
long_query_time = 1
 
#log_long_format
 
#log-error = /data/3306/error.log
 
#log-slow-queries = /data/3306/slow.log
 
pid-file = /data/3306/mysql.pid
 
log-bin = /data/3306/mysql-bin
 
relay-log = /data/3306/relay-bin
 
relay-log-info-file = /data/3306/relay-log.info
 
binlog_cache_size = 1M
 
max_binlog_cache_size = 1M
 
max_binlog_size = 2M
 
expire_logs_days = 7
 
key_buffer_size = 16M
 
read_buffer_size = 1M
 
read_rnd_buffer_size = 1M
 
bulk_insert_buffer_size = 1M
 
#myisam_sort_buffer_size = 1M
 
#myisam_max_sort_file_size = 10G
 
#myisam_max_extra_sort_file_size = 10G
 
#myisam_repair_threads = 1
 
#myisam_recover
 
lower_case_table_names = 1
 
skip-name-resolve
 
slave-skip-errors = 1032,1062
 
replicate-ignore-db=mysql
 
server-id = 1
 
innodb_additional_mem_pool_size = 4M
 
innodb_buffer_pool_size = 32M
 
innodb_data_file_path = ibdata1:128M:autoextend
 
innodb_file_io_threads = 4
 
innodb_thread_concurrency = 8
 
innodb_flush_log_at_trx_commit = 2
 
innodb_log_buffer_size = 2M
 
innodb_log_file_size = 4M
 
innodb_log_files_in_group = 3
 
innodb_max_dirty_pages_pct = 90
 
innodb_lock_wait_timeout = 120
 
innodb_file_per_table = 0
 
[mysqldump]
 
quick
 
max_allowed_packet = 2M
 
[mysqld_safe]
 
log-error=/data/3306/mysql_oldboy3306.err
 
pid-file=/data/3306/mysqld.pid
 
实例3307配置文件
 
vim /data/3307/my.cnf
 
[client]
 
port            = 3307
 
socket          = /data/3307/mysql.sock
 
[mysql]
 
no-auto-rehash
 
[mysqld]
 
user    = mysql
 
port    = 3307
 
socket  = /data/3307/mysql.sock
 
basedir = /application/mysql
 
datadir = /data/3307/data
 
open_files_limit = 1024
 
back_log = 600
 
max_connections = 800
 
max_connect_errors = 3000
 
table_cache = 614
 
external-locking = FALSE
 
max_allowed_packet =8M
 
sort_buffer_size = 1M
 
join_buffer_size = 1M
 
thread_cache_size = 100
 
thread_concurrency = 2
 
query_cache_size = 2M
 
query_cache_limit = 1M
 
query_cache_min_res_unit = 2k
 
#default_table_type = InnoDB
 
thread_stack = 192K
 
#transaction_isolation = READ-COMMITTED
 
tmp_table_size = 2M
 
max_heap_table_size = 2M
 
#long_query_time = 1
 
#log_long_format
 
#log-error = /data/3307/error.log
 
#log-slow-queries = /data/3307/slow.log
 
pid-file = /data/3307/mysql.pid
 
#log-bin = /data/3307/mysql-bin
 
relay-log = /data/3307/relay-bin
 
relay-log-info-file = /data/3307/relay-log.info
 
binlog_cache_size = 1M
 
max_binlog_cache_size = 1M
 
max_binlog_size = 2M
 
expire_logs_days = 7
 
key_buffer_size = 16M
 
read_buffer_size = 1M
 
read_rnd_buffer_size = 1M
 
bulk_insert_buffer_size = 1M
 
#myisam_sort_buffer_size = 1M
 
#myisam_max_sort_file_size = 10G
 
#myisam_max_extra_sort_file_size = 10G
 
#myisam_repair_threads = 1
 
#myisam_recover
 
lower_case_table_names = 1
 
skip-name-resolve
 
slave-skip-errors = 1032,1062
 
replicate-ignore-db=mysql
 
server-id = 3
 
innodb_additional_mem_pool_size = 4M
 
innodb_buffer_pool_size = 32M
 
innodb_data_file_path = ibdata1:128M:autoextend
 
innodb_file_io_threads = 4
 
innodb_thread_concurrency = 8
 
innodb_flush_log_at_trx_commit = 2
 
innodb_log_buffer_size = 2M
 
innodb_log_file_size = 4M
 
innodb_log_files_in_group = 3
 
innodb_max_dirty_pages_pct = 90
 
innodb_lock_wait_timeout = 120
 
innodb_file_per_table = 0
 
[mysqldump]
 
quick
 
max_allowed_packet = 2M
 
[mysqld_safe]
 
log-error=/data/3307/mysql_oldboy3307.err
 
pid-file=/data/3307/mysqld.pid
 
实例3306启动脚本
 
vim /data/3306/mysql
 
#!/bin/sh
 
################################################
 
#this scripts is created by oldboy at 2007-06-09
 
#oldboy QQ:31333741
 
#site:http://www.etiantian.org
 
#blog:http://oldboy.blog.51cto.com
 
#oldboy trainning QQ group: 208160987 226199307  44246017
 
################################################
 
#init
 
port=3306
 
mysql_user="root"
 
mysql_pwd="oldboy"
 
CmdPath="/application/mysql/bin"
 
mysql_sock="/data/${port}/mysql.sock"
 
#startup function
 
function_start_mysql()
 
{
 
    if [ ! -e "$mysql_sock" ];then
 
      printf "Starting MySQL...\n"
 
      /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
 
    else
 
      printf "MySQL is running...\n"
 
      exit
 
    fi
 
}
 
#stop function
 
function_stop_mysql()
 
{
 
    if [ ! -e "$mysql_sock" ];then
 
       printf "MySQL is stopped...\n"
 
       exit
 
    else
 
       printf "Stoping MySQL...\n"
 
       ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
 
   fi
 
}
 
#restart function
 
function_restart_mysql()
 
{
 
    printf "Restarting MySQL...\n"
 
    function_stop_mysql
 
    sleep 2
 
    function_start_mysql
 
}
 
case $1 in
 
start)
 
    function_start_mysql
 
;;
 
stop)
 
    function_stop_mysql
 
;;
 
restart)
 
    function_restart_mysql
 
;;
 
*)
 
    printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
 
esac
 
实例3307启动脚本
 
vim /data/3307/mysql
 
#!/bin/sh
 
################################################
 
#this scripts is created by oldboy at 2007-06-09
 
#oldboy QQ:31333741
 
#site:http://www.etiantian.org
 
#blog:http://oldboy.blog.51cto.com
 
#oldboy trainning QQ group: 208160987 226199307  44246017
 
################################################
 
#init
 
port=3307
 
mysql_user="root"
 
mysql_pwd="oldboy"
 
CmdPath="/application/mysql/bin"
 
mysql_sock="/data/${port}/mysql.sock"
 
#startup function
 
function_start_mysql()
 
{
 
    if [ ! -e "$mysql_sock" ];then
 
      printf "Starting MySQL...\n"
 
      /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
 
    else
 
      printf "MySQL is running...\n"
 
      exit
 
    fi
 
}
 
#stop function
 
function_stop_mysql()
 
{
 
    if [ ! -e "$mysql_sock" ];then
 
       printf "MySQL is stopped...\n"
 
       exit
 
    else
 
       printf "Stoping MySQL...\n"
 
       ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
 
   fi
 
}
 
#restart function
 
function_restart_mysql()
 
{
 
    printf "Restarting MySQL...\n"
 
    function_stop_mysql
 
    sleep 2
 
    function_start_mysql
 
}
 
case $1 in
 
start)
 
    function_start_mysql
 
;;
 
stop)
 
    function_stop_mysql
 
;;
 
restart)
 
    function_restart_mysql
 
;;
 
*)
 
    printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
 
esac
 
修改启动脚本的权限
 
find /data -type f -name "mysql"|xargs chmod 700
 
授权mysql用户管理/data目录
 
chown -R mysql.mysql /data
 
初使化数据库
 
cd /application/mysql/scripts/
 
./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3306/data/
 
./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3307/data/
 
启动多实例,加入开机自启动
 
/data/3306/mysql start
 
/data/3307/mysql start
 
netstat -tunlp |grep 330
 
# echo命令的 -e参数处理特殊字符;\n 换行且光标移至行首
 
echo -e "\n##mysql multi instance\n/data/3306/mysql start\n/data/3307/mysql start">>/etc/rc.local
 
tail -3 /etc/rc.local
 
##mysql multi instance
 
/data/3306/mysql start
 
/data/3307/mysql start
 
设置环境变量
 
方法一:将mysql的相关命令放入到已经是环境变量的目录下(推荐!!)
 
cp /application/mysql/bin/* /usr/local/bin/
 
方法二
 
export PATH=/application/mysql-5.5.49/bin/:$PATH
 
echo 'export PATH=/application/mysql-5.5.49/bin/:$PATH' >>/etc/profile
 
tail -1 /etc/profile
 
source /etc/profile
 
echo $PATH
 
登录与退出多实例
 
多实例的登录(无密码)
 
mysql -S /data/3306/mysql.sock
 
mysql -S /data/3307/mysql.sock
 
退出登录(4种)
 
mysql> exit
 
mysql> quit
 
mysql> Ctrl + c
 
mysql> Ctrl + d
 
设置密码
 
mysqladmin -uroot password 'oldboy123' -S /data/3306/mysql.sock
 
mysqladmin -uroot password 'oldboy123' -S /data/3307/mysql.sock
 
更改密码为:oldboy456
 
mysqladmin -uroot -poldboy123 password 'oldboy456' -S /data/3306/mysql.sock
 
多实例的登录(有密码)
 
mysql -uroot -poldboy123 -S /data/3306/mysql.sock
 
mysql -uroot -poldboy123 -S /data/3307/mysql.sock
 
再加一个实例3308
 
mkdir /data/3308/data -p
 
cp /data/3306/{my.cnf,mysql} /data/3308/
 
sed -i 's#3306#3308#g' /data/3308/{my.cnf,mysql}
 
sed -i 's#server-id = 1#server-id = 8#g' /data/3308/my.cnf
 
chown -R mysql.mysql /data/3308
 
chmod 700 /data/3308/mysql
 
cd /application/mysql-5.5.49/scripts/
 
./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3308/data/
 
/data/3308/mysql start
 
echo "/data/3308/mysql start" >>/etc/rc.local
 
netstat -tunpl |grep 330
 
mysql -S /data/3308/mysql.sock
 
mysqladmin -uroot password 'oldboy123' -S /data/3308/mysql.sock
 
mysql -uroot -poldboy123 -S /data/3308/mysql.sock
 
MySQL多实例优化
 
清理无用的MySQL库(3306)
 
mysql -uroot -poldboy123 -S /data/3306/mysql.sock
 
drop database test;
 
show databases;
 
清理无用的MySQL用户
 
select user,host from mysql.user;
 
drop user "root"@"::1";
 
drop user " "@"db02";
 
drop user "root"@"db02";
 
drop user " "@"localhost";
 
故障:drop命令删除不了用户
 
可能是大写及Linux主机名导致的,注意:删除用户尽量用drop命令,不要用delete命令
 
解决方法如下:
 
delete from mysql.user where user='' and host='S1';    
 
delete from mysql.user where user='root' and host='S1';
 
刷新权限
 
刷新权限,使更改立马生效
 
flush privileges;
 
 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章