在Linu型环境下面安装MySQL指导
来源:互联网 发布:java基础游戏开发实例 编辑:程序博客网 时间:2024/05/29 04:41
(1) 环境说明
MySQL软件:Mysql*Enterprise-Server.tar.gz *指版本号 此MySQL软件不需要编译
操作系统: SUSE Linux Enterprise Server 10 (x86_32) 或SUSE Linux Enterprise Server 10 (x86_64)
或SUSE Linux Enterprise Server 11 (x86_32) 或SUSE Linux Enterprise Server 11 (x86_64)
其他操作系统没有测试过
(2) 安装规划
MySQL默认shell环境为:csh mysql_usershell=/usr/bin/csh
MySQL服务端口号: 3306 mysql_server_port=3306
MySQL用户名:mysql mysql_username=mysql
MySQL用户密码: ShareWorld520 mysql_password=ShareWorld520
MySQL用户ID:2100 mysql_userid=2100
MySQL用户组:mysql mysql_groupname=mysql
MySQL用户组ID:2200 mysql_groupid=2200
MySQL家目录:/home/mysql mysql_userhome=/home/${mysql_username}
MySQL的配置文件my.cnf路径 mysql_config_file=/home/${mysql_username}/my.cnf
MySQL软件路径: /root/Mysql*Enterprise-Server.tar.gz mysql_pkg_path="/root/Mysql*Enterprise-Server.tar.gz"
(3) 安装步骤
#创建用户组 增加-o参数,gid即使已经存在,也要创建
groupadd -o -g ${mysql_groupid} ${mysql_groupname}
# 创建用户的同时设置用户密码
mysql_password=`mkpasswd ${mysql_password} at 2>/dev/null`
useradd -u ${mysql_userid} -g ${mysql_groupid} -d ${mysql_userhome} -s ${mysql_usershell} -m ${mysql_username} -p ${mysql_password}
#解压MySQL数据库安装包到MYSQL的家目录下
tar -zxf ${mysql_pkg_path} -C "${mysql_userhome}/"
#配置mysql系统参数文件
#获取内存大小
t_sys_mem=`free -m | grep -w "Mem:" | awk '{print $2}'`
#按照物理内存的50%配置MySQL的性能参数
(( t_mysql_max_mem = t_sys_mem*5/10 )) #你也可以通过其他方式获取值
修改/home/mysql/my.cnf文件,配置innodb_buffer_pool_size大小为内存的50%,具体也可以自己定义
sed -i "s#^innodb_buffer_pool_size.*#innodb_buffer_pool_size=${t_mysql_max_mem}#g" ${mysql_config_file}
#配置MySQL的端口号
sed -i "s#^port.*#port=${mysql_server_port}#g" ${mysql_config_file}
#最大在线客户端连接数
sed -i "s#^max_connections.*#max_connections=2000#g" ${mysql_config_file}
#设置服务器端缓存的客户端连接线程数量
sed -i "s#^thread_cache_size.*#thread_cache_size=128#g" ${mysql_config_file}
#触发事务日志缓存写磁盘的策略
sed -i "s#^innodb_flush_log_at_trx_commit.*#innodb_flush_log_at_trx_commit=1#g" ${mysql_config_file}
#innodb的日志文件大小
sed -i "s#^innodb_log_file_size.*#innodb_log_file_size=1G#g" ${mysql_config_file}
#二进制日志的内容格式
sed -i "s#^binlog_format.*#binlog_format=mixed#g" ${mysql_config_file}
#开辟一片内存用于缓存InnoDB引擎的数据字典信息和内部数据结构
sed -i "s#^innodb_additional_mem_pool_size.*#innodb_additional_mem_pool_size=2M#g" ${mysql_config_file}
#事件调度功能开关
sed -i "s#^event_scheduler.*#event_scheduler=0#g" ${mysql_config_file}
#数据库和表名不区分大小写
sed -i "s#^lower_case_table_names.*#lower_case_table_names=1#g" ${mysql_config_file}
#SQL排序缓存大小
sed -i "s#^sort_buffer_size.*#sort_buffer_size=6M#g" ${mysql_config_file}
#事务日志缓存大小
sed -i "s#^innodb_log_buffer_size.*#innodb_log_buffer_size=3M#g" ${mysql_config_file}
#MySQL的错误日志
sed -i "s#^log-error.*#log-error=../log/error/mysqlerr#g" ${mysql_config_file}
#sql的约束规则,注释掉sql-mode
sed -i 's/^\(sql-mode.*\)/#\1/' ${mysql_config_file}
#更改MySQL解压后的安装包的属主以及可执行权限
chown -R ${mysql_username}:${mysql_groupname} ${mysql_userhome}
#修改binlog目录权限为700
chmod -R 700 ${mysql_userhome}/binlog
#使环境变量生效
su - ${mysql_username} -c "cd ${mysql_userhome};source .cshrc"
#初始化MySQL数据库
su - ${mysql_username} -c "${mysql_userhome}/scripts/mysql_install_db --basedir=${mysql_userhome}"
#启动MySql数据库
su - ${mysql_username} -c "mysql.server start"
#查看MySQL服务是否正常启动
su - ${mysql_username} -c "${MYSQL_USERHOME}/bin/mysql.server status" | grep -w done | wc -l
#修改mysql的root用户密码为ShareWorld520
su - ${mysql_username} -c "mysql -u root <<EOF
use mysql;
update user set password=password('${mysql_password}') where user='root';
flush privileges;
EOF"
#配置mysql用户的句柄数
t_limits_cf="/etc/security/limits.conf"
sed -i "/^${mysql_username}[ ]\{1,\}soft.*/d" ${t_limits_cf}
sed -i "/^${mysql_username}[ ]\{1,\}hard.*/d" ${t_limits_cf}
echo "${mysql_username} soft nproc 16384" >> ${t_limits_cf}
echo "${mysql_username} hard nproc 16384" >> ${t_limits_cf}
echo "${mysql_username} soft nofile 65536" >> ${t_limits_cf}
echo "${mysql_username} hard nofile 65536" >> ${t_limits_cf}
#对MySQL数据库执行一些加固(可选择加固)
#删除test数据库,创建MySQL双机监控用户
su - ${mysql_username} -c "mysql -u root -p${mysql_password} -s <<EOF
drop database if exists test;
delete from mysql.user where password='';
delete from mysql.user where user='';
commit;
EOF"
#附录:
#查询root用户数据库里面所有的表,并输出到指定文件中
su - ${mysql_username} -c "echo \"show tables;\" | mysql -u root -p${mysql_password} mysql" > /home/mysql/mysql_tables.inc
#编写执行mysql脚本的代码(将旧IP地址修改为新IP地址)
#!/bin/bash
t_old_ip=192.168.9.10
t_new_ip=192.168.9.100
mysql -u ${RCSCC_DB_USER} -p${DE_RCSCC_DB_PASSWD} ${RCSCC_DBNAME} <<EOF
use mysql;
update user set host = '${t_new_ip}' where host = '${t_old_ip}';
commit
EOF
MySQL软件:Mysql*Enterprise-Server.tar.gz *指版本号 此MySQL软件不需要编译
操作系统: SUSE Linux Enterprise Server 10 (x86_32) 或SUSE Linux Enterprise Server 10 (x86_64)
或SUSE Linux Enterprise Server 11 (x86_32) 或SUSE Linux Enterprise Server 11 (x86_64)
其他操作系统没有测试过
(2) 安装规划
MySQL默认shell环境为:csh mysql_usershell=/usr/bin/csh
MySQL服务端口号: 3306 mysql_server_port=3306
MySQL用户名:mysql mysql_username=mysql
MySQL用户密码: ShareWorld520 mysql_password=ShareWorld520
MySQL用户ID:2100 mysql_userid=2100
MySQL用户组:mysql mysql_groupname=mysql
MySQL用户组ID:2200 mysql_groupid=2200
MySQL家目录:/home/mysql mysql_userhome=/home/${mysql_username}
MySQL的配置文件my.cnf路径 mysql_config_file=/home/${mysql_username}/my.cnf
MySQL软件路径: /root/Mysql*Enterprise-Server.tar.gz mysql_pkg_path="/root/Mysql*Enterprise-Server.tar.gz"
(3) 安装步骤
#创建用户组 增加-o参数,gid即使已经存在,也要创建
groupadd -o -g ${mysql_groupid} ${mysql_groupname}
# 创建用户的同时设置用户密码
mysql_password=`mkpasswd ${mysql_password} at 2>/dev/null`
useradd -u ${mysql_userid} -g ${mysql_groupid} -d ${mysql_userhome} -s ${mysql_usershell} -m ${mysql_username} -p ${mysql_password}
#解压MySQL数据库安装包到MYSQL的家目录下
tar -zxf ${mysql_pkg_path} -C "${mysql_userhome}/"
#配置mysql系统参数文件
#获取内存大小
t_sys_mem=`free -m | grep -w "Mem:" | awk '{print $2}'`
#按照物理内存的50%配置MySQL的性能参数
(( t_mysql_max_mem = t_sys_mem*5/10 )) #你也可以通过其他方式获取值
修改/home/mysql/my.cnf文件,配置innodb_buffer_pool_size大小为内存的50%,具体也可以自己定义
sed -i "s#^innodb_buffer_pool_size.*#innodb_buffer_pool_size=${t_mysql_max_mem}#g" ${mysql_config_file}
#配置MySQL的端口号
sed -i "s#^port.*#port=${mysql_server_port}#g" ${mysql_config_file}
#最大在线客户端连接数
sed -i "s#^max_connections.*#max_connections=2000#g" ${mysql_config_file}
#设置服务器端缓存的客户端连接线程数量
sed -i "s#^thread_cache_size.*#thread_cache_size=128#g" ${mysql_config_file}
#触发事务日志缓存写磁盘的策略
sed -i "s#^innodb_flush_log_at_trx_commit.*#innodb_flush_log_at_trx_commit=1#g" ${mysql_config_file}
#innodb的日志文件大小
sed -i "s#^innodb_log_file_size.*#innodb_log_file_size=1G#g" ${mysql_config_file}
#二进制日志的内容格式
sed -i "s#^binlog_format.*#binlog_format=mixed#g" ${mysql_config_file}
#开辟一片内存用于缓存InnoDB引擎的数据字典信息和内部数据结构
sed -i "s#^innodb_additional_mem_pool_size.*#innodb_additional_mem_pool_size=2M#g" ${mysql_config_file}
#事件调度功能开关
sed -i "s#^event_scheduler.*#event_scheduler=0#g" ${mysql_config_file}
#数据库和表名不区分大小写
sed -i "s#^lower_case_table_names.*#lower_case_table_names=1#g" ${mysql_config_file}
#SQL排序缓存大小
sed -i "s#^sort_buffer_size.*#sort_buffer_size=6M#g" ${mysql_config_file}
#事务日志缓存大小
sed -i "s#^innodb_log_buffer_size.*#innodb_log_buffer_size=3M#g" ${mysql_config_file}
#MySQL的错误日志
sed -i "s#^log-error.*#log-error=../log/error/mysqlerr#g" ${mysql_config_file}
#sql的约束规则,注释掉sql-mode
sed -i 's/^\(sql-mode.*\)/#\1/' ${mysql_config_file}
#更改MySQL解压后的安装包的属主以及可执行权限
chown -R ${mysql_username}:${mysql_groupname} ${mysql_userhome}
#修改binlog目录权限为700
chmod -R 700 ${mysql_userhome}/binlog
#使环境变量生效
su - ${mysql_username} -c "cd ${mysql_userhome};source .cshrc"
#初始化MySQL数据库
su - ${mysql_username} -c "${mysql_userhome}/scripts/mysql_install_db --basedir=${mysql_userhome}"
#启动MySql数据库
su - ${mysql_username} -c "mysql.server start"
#查看MySQL服务是否正常启动
su - ${mysql_username} -c "${MYSQL_USERHOME}/bin/mysql.server status" | grep -w done | wc -l
#修改mysql的root用户密码为ShareWorld520
su - ${mysql_username} -c "mysql -u root <<EOF
use mysql;
update user set password=password('${mysql_password}') where user='root';
flush privileges;
EOF"
#配置mysql用户的句柄数
t_limits_cf="/etc/security/limits.conf"
sed -i "/^${mysql_username}[ ]\{1,\}soft.*/d" ${t_limits_cf}
sed -i "/^${mysql_username}[ ]\{1,\}hard.*/d" ${t_limits_cf}
echo "${mysql_username} soft nproc 16384" >> ${t_limits_cf}
echo "${mysql_username} hard nproc 16384" >> ${t_limits_cf}
echo "${mysql_username} soft nofile 65536" >> ${t_limits_cf}
echo "${mysql_username} hard nofile 65536" >> ${t_limits_cf}
#对MySQL数据库执行一些加固(可选择加固)
#删除test数据库,创建MySQL双机监控用户
su - ${mysql_username} -c "mysql -u root -p${mysql_password} -s <<EOF
drop database if exists test;
delete from mysql.user where password='';
delete from mysql.user where user='';
commit;
EOF"
#附录:
#查询root用户数据库里面所有的表,并输出到指定文件中
su - ${mysql_username} -c "echo \"show tables;\" | mysql -u root -p${mysql_password} mysql" > /home/mysql/mysql_tables.inc
#编写执行mysql脚本的代码(将旧IP地址修改为新IP地址)
#!/bin/bash
t_old_ip=192.168.9.10
t_new_ip=192.168.9.100
mysql -u ${RCSCC_DB_USER} -p${DE_RCSCC_DB_PASSWD} ${RCSCC_DBNAME} <<EOF
use mysql;
update user set host = '${t_new_ip}' where host = '${t_old_ip}';
commit
EOF
- 在Linu型环境下面安装MySQL指导
- Linu安装MySQL
- 在liunx下面安装nginx + php +mysql
- MySql安装指导
- Windows下面安装apache+php+mysql开发环境
- JDK+TOMCAT+MYSQL在linux下安装指导
- 2_在Linux环境下面_HTTPD的安装
- centos下面安装mysql
- Windows 下面安装Mysql
- Ubuntu下面安装mysql
- mysql linux 下面安装
- linu下安装java开发环境及部署JBOSS服务器
- PIL安装指导(mac环境)
- mysql绿色版免安装指导
- ubuntu下面安装lnmp环境
- Linux环境下面安装Tomcat
- linu 下 apache 安装
- linu安装mysql5.7
- 关于JAVA和C#在MD5加密时不同问题的解决办法
- 组合数学_10月9号讲义
- Google Chrome浏览器调试
- Linux 终端及终端登录过程简介
- windows和linux中检查端口是否被占用
- 在Linu型环境下面安装MySQL指导
- 完工概率计算总结
- android的window基础介绍。
- android Handler简介
- Hadoop集群_安装配置
- OCP-1Z0-052-V8.02-147题
- oracle删除某用户下数据对象及表空间
- 电力系统名词解释
- 不同网段内的打印机能共享吗?