一,MySql简介
1,概述
2,高级MySql
- MySql内核
- Sql优化工程师
- MySql服务器的优化
- 查询语句优化
- 主重复制
- 软硬件升级
- 容灾备份
- Sql编程
二,MySqlLinux版本安装—MySql5.5
一,MySql5.5
1,下载地址:
2,检查当前系统是否安装过
3,安装MySql服务(注意提示)
4,安装MySql客户端
5,查看MySql安装时创建的MySql用户和MySql组
6,MySql服务的启+停
7,MySql服务启动后开始连接
8,自启动MySql启动
9,修改配置文件
10,修改字符集和数据存储路径
11,MySql的安装位置
1、下载
下载版本:我这里选择的5.6.33,通用版,linux下64位
也可以直接复制64位的下载地址,通过命令下载:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2、解压tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
#复制解压后的mysql目录mkdir -p /opt/mysqlcp -r mysql-5.6.33-linux-glibc2.5-x86_64 /opt/mysql
3、添加用户组和用户groupadd mysql
#添加用户mysql 到用户组mysqluseradd -g mysql mysql
给mysql5.6.33用户组和权限chown -R mysql:mysql /opt/mysql
4、安装
初始化cd /opt/mysql/bin ./scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
/opt/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqldchmod 755 /etc/init.d/mysqldcp /opt/mysql/support-files/my-default.cnf /etc/my.cnf
#修改启动脚本vim /etc/init.d/mysqld
#修改项:basedir=/opt/mysqldatadir=/opt/mysql/data
修改配置文件 vim /etc/my.cnf
[client]default-character-set = utf8[mysql]default-character-set = utf8[mysqld]#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#设置utf8字符集###character-set-client-handshake = FALSEcharacter-set-server = utf8collation-server = utf8_unicode_ciinit_connect=‘SET NAMES utf8’port=3306bind-address = 0.0.0.0 # 表示允许任何主机登陆MySQL#路径设置-开始-baseDir###basedir = /opt/mysqldatadir = /opt/mysql/datasocket = /opt/mysql/mysql.sockpid-file = /opt/mysql/mysqld.pid#创建新表时将使用的默认存储引擿default-storage-engine=INNODB#数据库服务器IDserver-id = 1#log_bin_basename#log_bin_index#mysql错误日志log_error = /opt/mysql/log/error.log#mysql所有操作日志#general_log_file = /opt/mysql/log/general.log#开启binlog日志#log-bin = /opt/mysql/log/mysql-bin#慢查询日志slow_query_log_file =/opt/mysql/log/slowquery.log#慢查询日志slow_query_log = ON#slow_query_log_file#超过0.5秒记录long_query_time = 10#sql语句执行时间大于long_query_time至少被检查到的次数。min_examined_row_limit = 100#mysql未使用索引或索引扫描是否被记录到慢查询日志中log_queries_not_using_indexes = 1#用来表示每分钟允许记录到slow log的且未使用索引的SQL语句次数log_throttle_queries_not_using_indexes = 10#innodb日志文件存放位置#innodb_log_group_home_dir = /opt/mysql/innodb#innodb共享表空间文件#innodb_data_home_dir = /opt/mysql/innodb#mysql所有操作日志 生产服务器不开启#general_log = OFF#general_log_file#需要同步的数据库#binlog-do-db=crm#不需要同步的数据库binlog-ignore-db=mysql#同binlog,定义binlog的位置和名称log_bin_index = /opt/mysql/log/binlog.index#binlog格式,复制有3种模式STATEMENT,ROW,MIXEDbinlog_format = row#只保留最近10天的binlog日志expire_logs_days = 10#每个binlog日志文件的最大容量max_binlog_size = 50M#每个session分配的binlog缓存大小##事务提交前产生的日志,记录到Cache中;事务提交后,则把日志持久化到磁盘binlog_cache_size = 2M#开启log_slave_updates,从库的更新操作记录进binlog日志log_slave_updates = ON# sync_binlog=0(默认),事务提交后MySQL不刷新binlog_cache到磁盘,而让Filesystem自行决定#或者cache满了才同步。#sync_binlog=n,每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。sync_binlog = 0#将row模式下的sql语句,记录到binlog日志,默认是0(off)#binlog_rows_query_log_events = ONsymbolic-links=0#InnoDB打开idb文件数量#innodb_open_files = 512#innodb_buffer_pool_size = 4G#innodb_buffer_pool_instances = 1#mysql允许的并发操作数量max_connections = 512#mysql连接池线程数量thread_cache_size = 256#在缓冲区中表的数量 一般4g内存2048table_open_cache = 512key_buffer_size = 1G#关闭一个交互的连接之前所要等待的秒数interactive_timeout = 200#关闭一个非交互的连接之前所要等待的秒数wait_timeout = 200#0不自动提交 1自动提交事务autocommit = 1#mysql可以timestamp字段可以使用nullexplicit_defaults_for_timestamp = ON#跳过反向域名解析(mysql不可使用域名登录)skip_name_resolve = ON#MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中back_log = 256#错误连接次数max_connect_errors = 30#每次最大提交数据包大小max_allowed_packet = 8M#二进制缓冲区日志大小binlog_cache_size = 1M#MEMORY引擎单表大小max_heap_table_size = 1024M#每个临时表大小tmp_table_size = 2M#每客户端索引和表查询数据缓冲区大小read_rnd_buffer_size = 2M#全表扫描数据缓冲区大小read_buffer_size = 2M#批量写入缓冲区大小bulk_insert_buffer_size = 16M#每客户端排序数据缓冲区大小sort_buffer_size = 256K#每客户端join数据缓冲区大小join_buffer_size = 512K#关闭查询缓存(QC)#query_cache_size = 0#query_cache_type = 0#mysql事务隔离级别#transaction_isolation = READ-COMMITTED#记录管理语句#log_slow_admin_statements = 1#记录复制语句#log_slow_slave_statements = 1#记录警告日志#log_warnings = 1#配置表名不区分大小写 1:不区分#lower_case_table_names = 1
5 测试
#启动服务service mysqld start
#测试连接./mysql/bin/mysql -uroot
#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了export PATH=$PATH:/opt/mysql/binsource /etc/profile
#启动mysqlservice mysqld start
#关闭mysqlservice mysqld stop
#查看运行状态service mysqld status
6 远程连接的用户权限
解决1:更改 ‘mysql’数据库’user’表’host’项,从’localhost’改成 ‘%’。./mysql/bin/mysql -urootselect 'host' from user where user='root';update user set host = '%' where user='root'; 设置外网可以访问update user set authentication_string=password('123456') where user='root'; 修改密码flush privileges;
解决2:直接授权
复制代码代码如下:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
5.2 安装时的一些错误
-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: 没有那个文件或目录
解决:yum -y install perl perl-devel
Installing MySQL system tables…./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:yum -y install libaio-devel
7 设置开机启动
##将服务文件复制一份到init.d下,并重命名为mysqldcp /data/mysql/support-files/mysql.server /etc/init.d/mysqld##对文件赋予执行权限chmod +x /etc/init.d/mysqld 或 chmod 777 /etc/init.d/mysqld##增加mysqld服务chkconfig --add mysqld##查询mysqld服务情况chkconfig --list mysqldmysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off 默认的运行级别为2,3,4,5##如果3,4,5 为off:chkconfig --level 345 mysqld on##重启服务器验证:reboot
三,MySql配置文件
四,MySql存储引擎
1,查看命令
2,MyISAM和InnoDB
3,阿里巴巴,淘宝
