mysql的安装
数据库版本:mysql-5.6.32
1 配置安装数据库所需的磁盘
2 创建mysql的安装目录及数据库存放目录
mkdir -p /vdncloud/mysql
mkdir -p /vdncloud/mysql/data
3 创建用户组和用户
groupadd mysql
useradd -r -g mysql mysql
4 解压mysql的源码包
tar -zxv -f mysql-5.6.32.tar.gz
cd mysql-5.6.32
5 执行cmake
[root@wz mysql-5.6.32]# cmake \
-DCMAKE_INSTALL_PREFIX=/vdncloud/mysql \
-DMYSQL_DATADIR=/vdncloud/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
6 编译
make && make install
7 设置目录权限 加系统服务
cd /vdncloud/mysql
chown -R root:mysql .
chown -R mysql:mysql data
cp support-files/mysql.server /etc/init.d/mysql
8 建立系统数据库表
cd /vdncloud/mysql
scripts/mysql_install_db –user=mysql
9 设置环境变量
vim /root/.bash_profile
在PATH=
PATH:
HOME/bin添加参数为:
PATH=
PATH:
HOME/bin:/vdncloud/mysql/bin:/vdncloud/mysql/lib
重载环境变量
source /root/.bash_profile
将my.cnf修改好放入/etc/下, 具体配置在文档末尾.
10 建立系统数据库表
cd /vdncloud/mysql
scripts/mysql_install_db –user=mysql
11 以安全模式启动数据库
cd /vdncloud/mysql
./bin/mysqld_safe –user=mysql &
12 停止数据库(安全模式)
mysqladmin -u root -p shutdown
13 启动数据库
/etc/init.d/mysql start
14 停止数据库
/etc/init.d/mysql stop
15 登录数据库:
mysql -uroot -P65000
修改密码:
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘*);
重新登录:
mysql -uroot -p*** -P65000
创建新用户:
grant all on . to ‘‘@’localhost’ identified by ‘‘;
flush privileges;
查看授权
select host, user from mysql.user;
数据库配置文件my.cfg
[mysqld]
skip_name_resolve
datadir=/vdncloud/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
port = 65000
lower_case_table_names=1
max_connections = 1024
max_user_connections=1000
max_connect_errors=10000
#设定InnoDB缓存表数据和索引的内存缓冲区大小
innodb_buffer_pool_size=40G
#默认值为 48M. 有很高写入吞吐量
innodb_log_file_size=4G
#InnoDB 存储引擎的事务日志所使用的缓冲区
innodb_log_buffer_size = 32M
#参数对于InnoDB存储引擎写入操作的性能
innodb_flush_log_at_trx_commit=2
#修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间
innodb_file_per_table=1
#限制Innodb能打开的表的数据 linux只会等于4
innodb_file_io_threads=4
innodb_read_io_threads = 14 # 默认值:4
innodb_write_io_threads = 10 # 默认值:4
#如果使用硬件RAID磁盘控制器, 需要设置为 O_DIRECT
innodb_flush_method=O_DIRECT
#设置会影响InnoDB每秒在后台执行多少操作
innodb_io_capacity=2000
innodb_io_capacity_max=6000
#这个参数必须要和innodb_io_capacity设置一样
innodb_lru_scan_depth=2000
#限制了一次有多少线程能进入内核,0表示不限制进入内核的数量
innodb_thread_concurrency = 0
#除了缓存表数据和索引外,可以为操作所需的其他内部项分配缓存来提升InnoDB的性能,这些内存就可以通过此参数来分配
innodb_additional_mem_pool_size=16M
#修改为基于行的复制
innodb_autoinc_lock_mode = 2
#事物提交次数
sync_binlog = 1000
#mysql数据库事务隔离级别有四种(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SERIALIZABLE)
transaction-isolation=READ-COMMITTED
#cache
#内部内存临时表的最大值
tmp_table_size=512M
character-set-server=utf8
collation-server=utf8_general_ci
#即跳过外部锁定
skip-external-locking
#MySQL能暂存的连接数量(根据实际设置)
back_log=1024
#指定索引缓冲区的大小,只对MyISAM表起作用,这里写上也没有关系
key_buffer_size=64M
bulk_insert_buffer_size = 64M # 默认值:8M
#这条指令限定用于每个数据库线程的栈大小
thread_stack=256k
#当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区
read_buffer_size=512K
#线程缓存
thread_cache_size=64
#查询缓存大小
query_cache_size=128M
#内部内存临时表的最大值,每个线程都要分配
max_heap_table_size=256M
#将查询结果放入查询缓存中
query_cache_type=0
#代表在事务过程中容纳二进制日志SQL语句的缓存大小
binlog_cache_size = 2M
#同样是缓存表大小
table_open_cache=2000
#表和表联接的缓冲区的大小
join_buffer_size = 512K
#是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存
sort_buffer_size=512K
#随机读取数据缓冲区使用内存
read_rnd_buffer_size = 512K
#开启查询缓存
explicit_defaults_for_timestamp=true
#mysql服务器能够工作在不同的模式下,并能针对不同的客户端以不同的方式应用这些模式
#sql_mode=sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
##############
# Log
##############
# Binary log/Replication
log-bin = mysql-bin # 默认值:OFF
binlog_format = ROW # 默认值:MIXED
max_binlog_size = 256M # 默认值:100M
binlog_cache_size = 4M # 默认值:32k
# max_binlog_cache_size = 8M # 默认值:挺大
expire_logs_days = 7 # 默认值:0
# Slow log
slow_query_log = ON # 默认值:OFF(调试时打开)
long_query_time = 3 # 默认值:10
slow_query_log_file=/vdncloud/mysql/data/mysql_slow.log # 默认值:/var/lib/mysql/hostname-slow.log
[client]
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/vdncloud/mysql/data/mu-gb-1.pid