1、环境介绍
系统:centos6.5
软件:mysql6.5(从官网下载版本时选择Linux-Generic、X86-64bit)
2、安装前系统检查
2.1、SElinux和防火墙是否关闭
2.2、操作系统的限制
修改系统的软硬限制,防止服务器的连接过多或表过多而出现打不开表或访问不了表的现象(“too many open files”)和服务器跑多个实例时报(“resource temporarily unavailable”)的错误,表示没有足够资源。编辑/etc/security/limits.conf, 注意:修改完成候重启系统才能生效
3、mysql数据安装过程
3.1、创建mysql用户,用户组,解压安装包,给安装包授权
1 #创建用户及用户组 2 groupadd mysql 3 useradd -g mysql mysql -s /sbin/nologin 4 5 #解压安装包至“/usr/local”下 6 tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local 7 8 #做软连接,方便日后升级 9 ln -s /usr/local/mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql 10 11 #给mysql目录授权 12 chown mysql.mysql -R /usr/local/mysql
3.2、创建数据库的数据目录并授权
1 #创建数据库的数据目录 2 mkdir -p /data/mysql 3 4 #授权 5 chown -R mysql.mysql /data/mysql
3.3、配置数据库配置文件
vi /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] port = 3306 socket = /tmp/mysql.sock basedir = /usr/local/mysql datadir = /data/mysql open_files_limit = 65535 back_log = 103 max_connections = 512 max_connect_errors = 100000 table_open_cache = 512 external-locking = FALSE max_allowed_packet = 128M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 51 query_cache_size = 32M tmp_table_size = 96M max_heap_table_size = 96M slow_query_log = 1 slow_query_log_file = /data/mysql/slow.log log-error = /data/mysql/error.log long_query_time = 0.5 server-id = 1323306 log-bin = /data/mysql/mysql-bin sync_binlog = 1 binlog_cache_size = 4M max_binlog_cache_size = 128M max_binlog_size = 1024M expire_logs_days= 7 key_buffer_size = 32M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M character-set-server=utf8 default-storage-engine=InnoDB binlog_format=row interactive_timeout=300 wait_timeout=300 transaction_isolation = REPEATABLE-READ innodb_buffer_pool_size = 1434M innodb_data_file_path = ibdata1:1024M:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 16M innodb_log_file_size = 256M innodb_log_files_in_group = 2 innodb_max_dirty_pages_pct = 50 innodb_file_per_table = 1 innodb_locks_unsafe_for_binlog = 0 [mysqldump] quick max_allowed_packet = 32M
3.4、初始化数据库,一般情况下初始过程中出现两个OK,证明初始化数据库成功。
1 cd /usr/local/mysql/scripts 2 ./mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --defaults-file=/etc/my.cnf --user=mysql
3.4、初始化数据库完成后,启动数据库:
1 cd /usr/local/mysql/bin 2 ./mysqld_safe --defaults-file=/etc/my.cnf &
查看mysql进程,验证是否启动成功
3.5、创建数据库密码
1 #mysql安装完成后,进入数据库的方式是无密码状态,为保证数据库安全,需给数据库root用户创建密码 2 mysql>use mysql; 3 mysql>update user set password=password('root123') where user='root'; 4 mysql>flush privileges; 5 6 #安全加固,只保留数据库中用户为root,host为localhost的账号。 7 mysql>delete from user where user != 'root' or host != 'localhost'; 8 mysql>flush privileges;
4、关闭mysql数据库:
1 #正常关闭 2 shell>cd /usr/local/mysql/bin 3 shell>./mysqladmin -uroot -proot123 shutdown 4 5 #非正常关闭 6 shell>ps -ef|grep mysql 7 #查看mysql数据库的进程ID,直接kill
至此,mysql数据库安装,启动和关闭完成
5、额外学习
1 #进入mysql数据库,通过show databases来查看当前数据库有哪些 2 mysql> show databases; 3 +--------------------+ 4 | Database | 5 +--------------------+ 6 | information_schema | 7 | mysql | 8 | performance_schema | 9 | test | 10 +--------------------+ 11 4 rows in set (0.02 sec) 12 13 #我们主要了解一下information_schema和mysql库 14 15 #information_schema在安装mysql过程中的初始化阶段自动生成,它提供了访问数据库中元数据的所有信息,里面存放着关于mysql服务器所有其它数据库的信 息,如:数据库名、数据库里面的表、表数据类型和访问权限等,但该库是只读库,只能进行select操作,我们在information_schema中使用较多的表有: 16 * tables (记录所有表的基本信息,访问该表可收集表的统计信息) 17 * PROCESSLIST (查看当前数据库的连接) 18 * GLOBAL_STATUS (查看数据库运行的各种状态) 19 * GLOBAL_VARIABLES (查看数据库中的参数) 20 * PARTITIONS (数据库中表分区的情况) 21 * INNODB_LOCKS、INNODB_TRX、INNODB_LOCK_WAITS 这三张表用来监控数据库中的锁情况 22 23 #mysql库也是初始化过程中自动创建的,我们主要使用user表来管理数据库中的用户权限信息