安装mysql5.8
安装依赖环境:
yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake
安装前的准备:
mkdir /opt/mysql 安装mysql的位置
groupadd mysql 创建mysql用户组
useradd mysql -g mysql -M -s /sbin/nologin 创建mysql用户,并加入mysql组,无家目录,无登录权限
安装mysql:
解压tar包并进入,执行
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/ -DMYSQL_DATADIR=/opt/mysql/data/ -DSYSCONFDIR=/opt/mysql/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/opt/mysql/etc/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data #数据文件存放位置
# -DSYSCONFDIR=/etc #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 #支持Memory引擎
# -DWITH_READLINE=1 #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306 #端口
# -DENABLED_LOCAL_INFILE=1 #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1 #安装支持数据库分区
# -DEXTRA_CHARSETS=all #安装所有的字符集
# -DDEFAULT_CHARSET=utf8 #默认字符
make &&make install
安装后配置:
chown -R mysql.mysql /opt/mysql
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
编辑/opt/mysql/etc/my.cnf
[mysqld]
basedir = /opt/mysql
datadir = /opt/mysql/data
port = 3306
# server_id = .....
socket = /opt/mysql/etc/mysql.sock #这一行指定了mysql启动后sock文件的位置,登录本机的mysql时若报错没有发现该文件则将路径改为报错时的路径即可
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
初始化数据库(用如下一种方法即可)
/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data --defaults-file=/opt/mysql/etc/my.cnf
启动数据库及初步配置:
/etc/init.d/mysqld start 无报错即为启动成功
/opt/mysql/bin下有相应的mysql命令脚本,可直接使用登录或备份mysql
mysql 登录本机mysql
set password=password('wang123'); 给数据库root用户设置密码
####################################################################
mysql生产环境配置文件范例:
[client]
port=3306
socket=/opt/mysql/etc/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/opt/mysql/etc/mysql.sock
pid-file=/opt/mysql/etc/mysql.pid
basedir=/opt/mysql
datadir=/opt/mysql/data
open_files_limit=1024 #MySQL打开的文件描述符限制,默认最小1024
explicit_defaults_for_timestamp=true
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #SQL模式的参数,通过这个参数可以设置检验SQL语句的严格程度
federated
skip-name-resolve #禁止MySQL对外部连接进行DNS解析
autocommit=1
max_connections = 1000 #最大连接数
###############################主从同步相关
server-id=1 #主从关系的mysql主机server-id不能相同
log_slave_updates=1
slave_skip_errors = 1062
log-bin=/opt/mysql/data/log-bin/mysql-bin
relay_log=/opt/mysql/data/relay-log/mysql-relay-bin
binlog_cache_size=8M
max_binlog_cache_size=32M
max_binlog_size=128M
binlog_format=mixed #binlog日志格式,mysql默认采用statement,建议使用mixed
sync_binlog=1 #为了安全性建议设置此项为1,表示每次提价事务都会将缓存binlog写到日志中去
log_output=FILE
log_error=mysql-error.log
slow_query_log=1
slow_query_log_file=slow_query.log
general_log=0
general_log_file=general_query.log
expire_logs_days=30 #超过30天的binlog删除
log-slave-updates = true #将复制事件写入binlog,一台服务器既做主库又做从库此选项必须要开启
###############################buffer
max_allowed_packet=32M #接受的数据包大小
max_heap_table_size=32M #定义了用户可以创建的内存表的大小
net_buffer_length=8K
sort_buffer_size=1M #MySQL执行排序使用的缓冲大小
join_buffer_size=1M #联合查询操作所能使用的缓冲区大小
read_buffer_size=1M #MySQL读入缓冲区大小
read_rnd_buffer_size=8M #MySQL的随机读缓冲区大小
###############################InnoDB
innodb_data_file_path=ibdata1:2048M:autoextend
innodb_log_file_size=256M #日志文件的大小,值越大则性能相对越高,一般64-512M
innodb_log_files_in_group=3 #为提高性能,MySQL可以以循环方式将日志文件写到多个文件。推荐设置为3
innodb_buffer_pool_size=64M #缓存的大小,InnoDB使用一个缓冲池保存索引和原始数据
#innodb_flush_log_at_trx_commit 1 #设置提交日志的时机,若设置为1,InnoDB会在每次提交后将事务日志写到磁盘上
#############################commit
init_connect='SET autocommit=0'
transaction_isolation = READ-COMMITTED #隔离事务类型,一般设为READ-COMMITTED
[mysql]
no-auto-rehash
default-character-set=utf8 #默认字符集类型