MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)
目录
第一部分、5.6安装、配置、自动备份
第二部分、5.7源码安装、配置、自动备份
第一部分、5.6安装
1、安装mysql
sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev
2、查询是否安装成功
sudo netstat -tap | grep mysql
如下图所示,表示安装成功
my.cnf 配置文件在哪个位置?
#第一种
sudo find / -name my.cnf
#第二种
sudo mysql --help | grep my.cnf
编辑mysql配置文件,注释掉“bind-address = 127.0.0.1”
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf #bind-address = 127.0.0.1
使用root进入mysql命令行,执行如下2个命令,示例中mysql的root账号密码:123456
mysql -u root -p123456
mysql 赋给root用户权限 grant all privileges on
grant all on *.* to root@'%' identified by 'root' with grant option; flush privileges;
刷新flush privileges;然后重启mysql,通过/etc/init.d/mysql restart命令
/etc/init.d/mysql restart -- 重启Mysql
创建一个数据库:snailblog
创建用户:tinywan_user,并使用snailblog数据库
grant all on snailblog.* to 'tinywan_user' identified by 'test123456';
tinywan_user 登录后的看到的数据库
》》》=======================================以上为基本数据操作完成
如果继续给tinywan_user 继续分配新的数据,同时拥有所有权限
grant all on live2Video.* to tinywan_user@'%' identified by 'test123456' with grant option;
1 在目标服务器上(192.168.1.11),修改mysql的my.cnf文件:
sudo vi /etc/mysql/my.cnf
2、在服务器登陆数据
mysql -u root -p
3、创建一个远程用户,用户名:www 密码:123456
grant all on *.* to www@'%' identified by '123456';
flush privileges;
4、使用 Navicat for MySQL 远程链接
注意:如果其他用户(如:root用户)远程登录不了,执行以下命令既可以:
grant all privileges on *.* to root@'%' identified by "root用户的密码";
5、远程命令行链接:
mysql -h192.168.18.150 -u root -p
6、mysql修改用户密码的方法
//选择数据库
use mysql;
//修改密码
update user set password=password('新密码') where user='root';
//立即生效
flush privileges
7、mysql忘记密码的解决方法
忘记管理员密码: 在my.ini的[mysqld]字段下面加入:skip-grant-tables
重启mysql服务,这时的mysql不需要密码即可登录数据库 然后进入mysql
use mysql;
update user set password=password('新密码') where user='root';
flush privileges
运行之后最后去掉my.ini中的skip-grant-tables,重启mysql即可。
MySQL 开启与关闭远程访问
(1)通过MySQL用户去限制访问
权限系统目的:
MySQL基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限,今天介绍的就是如何开启和关闭Mysql远程访问
MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT、INSERT、UPDATE和DELETE权限。 附加的功能包括有匿名的用户并对于MySQL特定的功能例如LOAD DATA INFILE进行授权及管理操作的能力。
权限系统原理:
MySQL权限系统保证所有的用户只执行允许做的事情。当你连接MySQL服务器时,你的身份由你从那儿连接的主机和你指定的用户名来决定。连接后发出请求后,系统根据你的身份和你想做什么来授予权限。
MySQL在认定身份中考虑你的主机名和用户名字,是因为几乎没有原因假定一个给定的用户在因特网上属于同一个人。例如,从office.com连接的用户joe不一定和从elsewhere.com连接的joe是同一个人。MySQL通过允许你区分在不同的主机上碰巧有同样名字的用户来处理它:你可以对joe从office.com进行的连接授与一个权限集,而为joe从elsewhere.com的连接授予一个不同的权限集。
阶段1:服务器检查是否允许你连接。 阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你对表有SELECT权限或对数据库有DROP权限。 如果连接时你的权限被更改了(通过你和其它人),这些更改不一定立即对你发出的下一个语句生效。MySQL权限是保存在cache中,这个时候就你需要执行flush privileges;
开启远程访问
- 更新用户
use mysql; update user set host = "%" where user = "root"; -- host="%" 代表可以远程访问 flush privileges; -- 记得清楚缓存 - 添加用户
use mysql; insert into user(host, user, password) values("%", "root", password("yourpassword")) grant all privileges on *.* to 'root'@'%' with grant option #赋予任何主机访问数据库权限 flush privileges;
关闭远程访问:
use mysql;
update user set host = "localhost" where user = "root" and host= "%";
flush privileges; 查看用户权限:
use information_schema;
select * from user_privileges; 查看当前mysql用户:
use mysql;
select user, host from user; 更新用户:
update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
flush privileges; 删除用户:
DELETE FROM user WHERE User="phplamp" and Host="localhost";
flush privileges;
例如:关闭root 用户的远程访问或者客户端登录
mysql> select host, user from user; -- 查找所有用户信息
+-----------+---------+
| host | user |
+-----------+---------+
| % | root |
| % | tinywan |
| localhost | root |
+-----------+---------+
3 rows in set (0.00 sec) mysql> DELETE FROM user where user="root" and host="%"; -- 删除root 用户的远程访问
Query OK, 1 row affected (0.00 sec) mysql> select host, user from user; -- 查看,已经被删除掉
+-----------+---------+
| host | user |
+-----------+---------+
| % | tinywan |
| localhost | root |
+-----------+---------+
2 rows in set (0.00 sec) mysql> flush privileges; -- 清除缓存
Query OK, 0 rows affected (0.00 sec) mysql> select host, user from user;
+-----------+---------+
| host | user |
+-----------+---------+
| % | tinywan |
| localhost | root |
+-----------+---------+
2 rows in set (0.00 sec)
这时候我们再次使用root用户去远程登,会出现以下错误信息(PS:Tinywan用户依然可以远程登录):
user host指定方法:
Host值可以是主机名或IP号,或’localhost’指出本地主机。
你可以在Host列值使用通配符字符“%”和“_”。
host值’%’匹配任何主机名,空Host值等价于’%’。它们的含义与LIKE操作符的模式匹配操作相同。例如,’%’的Host值与所有主机名匹
配,而’%.mysql.com’匹配mysql.com域的所有主机。
ip地址例子:
192.0.0.0/255.0.0.0(192 A类网络的任何地址)
192.168.0.0/255.255.0.0(192.168 A类网络的任何地址)
192.168.1.0/255.255.255.0(192.168.1 C类网络的任何地址)
192.168.1.1(只有该IP)
mysql doc:
http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html
(2)通过IpTable
iptables是一款防火墙软件。它在Ubuntu系统中是默认安装的。通常情况下,iptables随系统一起被安装,但没有对通信作任何限制,因此
防火墙并没有真正建立起来。
iptables帮助:
sudo iptables -h #下面全部使用root用户调用指令
查看iptables:
iptables -L Chain INPUT (policy ACCEPT)
target prot opt source destination Chain FORWARD (policy ACCEPT)
target prot opt source destination Chain OUTPUT (policy ACCEPT)
target prot opt source destination
可以看到,上面规则都是空的
允许已建立的连接接收数据:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
开放指定的端口:
接下来,我们可以尝试开放 ssh 22端口,告诉iptables允许接受到所有目标端口为22的tcp报文通过
iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT
执行上面的命令,一条规则会被追加到INPUT规则表的末尾(-A表示追加)。根据这条规则,对所有从接口eth0(-i指出对通过哪个接口的报
文运用此规则)接收到的目标端口为22的报文,iptables要执行ACCEPT行动(-j指明当报文与规则相匹配时应采取的行动)。
开放80端口:
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
这时,你再次去看看规则表中内容,你会发现有
iptables -L Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:www
通过上述命令,我们已经代开了SSH和web服务的相应的端口,但由于没有阻断任何通信,因此所有的报文都能通过,所以接下来,我们就可
以尝试阻断3306 mysql端口
阻断通讯:
iptables -A INPUT -p tcp -i eth0 --dport 3306 -j DROP
通过这样指令,就可以阻断任何访问3306报文,但是这样就有一个问题,就是可能连我们自己信任的主机都无法访问mysql了,所以,我们需
要编辑下iptables,添加特定允许访问的主机
iptables -I INPUT 4 -p tcp -s ip_address -i eth0 --dport 3306 -j ACCEPT
好了,通过上面,我们把该指令插入到规则表里第四行,然后允许特定ip访问3306端口
Logging记录:
如果希望被丢失的报文记录到syslog中,最简单的方法可以这样做:
iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
保存设置:
机器重启后,iptables中的配置信息会被清空。您可以将这些配置保存下来,让iptables在启动时自动加载,省得每次都得重新输入。
iptables-save和iptables-restore 是用来保存和恢复设置的。
先将防火墙规则保存到/etc/iptables.up.rules文件中
iptables-save > /etc/iptables.up.rules
然后修改脚本/etc/network/interfaces,使系统能自动应用这些规则(最后一行是我们手工添加的)。
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
当网络接口关闭后,您可以让iptables使用一套不同的规则集。
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
post-down iptables-restore < /etc/iptables.down.rules
技巧(Tips):
大多数人并不需要经常改变他们的防火墙规则,因此只要根据前面的介绍,建立起防火墙规则就可以了。但是如果您要经常修改防火墙规则
,以使其更加完善,那么您可能希望系统在每次重启前将防火墙的设置保存下来。为此您可以在/etc/network/interfaces文件中添加一行:
pre-up iptables-restore < /etc/iptables.up.rules
post-down iptables-save > /etc/iptables.up.rules
使用 Ubuntu 14.04 系统在安装 mysql-server 时出现如下报错信息
eading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation: The following packages have unmet dependencies:
mysql-server : Depends: mysql-server-5.5 but it is not going to be instaed
E: Unable to correct problems, you have held broken packages.
可以看到报错是无法解决 mysql-server 安装时的依赖关系导致的。 因为用户是使用 apt-get 的方式安装的,那么这种安装方式通常是能够自动解决依赖关系。
解决办法:
云服务器 ECS Ubuntu 安装 MySQL Server 提示 mysql-server : Depends: mysql-server-5.5
----------------------------------Mysql 检查日志错误信息解决--------------------------------------------------------------------------------------------------------------------------
错误日志
相关解决办法:打开配置文件,添加:skip-name-resolve
更多了解:MySQL 5.6关闭DNS查询
重启错误日志:
解决MySQL 5.6版的Function ‘innodb’ already exists错误
MySQL 5.6服务器初始化脚本添加了以下的插件表,而实际上MySQL 5.6不依赖于任何插件:
mysql> select * from mysql.plugin;
+-----------+-----------------+
| name | dl |
+-----------+-----------------+
| innodb | ha_innodb.so |
| federated | ha_federated.so |
| blackhole | ha_blackhole.so |
| archive | ha_archive.so |
+-----------+-----------------+
rows in set (0.00 sec)
解决它很简单,执行命令:
mysql> delete from mysql.plugin;
Query OK, rows affected (0.00 sec)
再次重启,错误消失
错误 :[Warning] 'user' entry 'root@ubuntu2' ignored in --skip-name-resolve mode.
解决办法:
mysql>use mysql;
mysql> delete from user where HOST='localhost.localdomain';
Query OK, rows affected (0.00 sec)
mysql>use mysql;
mysql> delete from user where HOST='localhost.localdomain';
Query OK, rows affected (0.00 sec)
第二部分、5.7安装
安装
若使用apt-get install mysql-server进行安装,默认安装的不是最新的版本,于是考虑去官网找一个最新的社区版本。
1.获取最新的Mysql版本
在 https://dev.mysql.com/downloads/mysql/ 下选择操作系统版本(本例为Ubuntu),下载的时候注意要和操作系统版本相匹配(OS版本对应安装包版本)。
查看系统版本:
$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
复制链接地址进行下载:
下载地址:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.21-1ubuntu16.04_amd64.deb-bundle.tar
2.具体安装(因为依赖报的关系,需要注意安装次序)
解压
$ tar -xvf mysql-server_5.7.21-1ubuntu16.04_amd64.deb-bundle.tar
mysql-community-client_5.7.21-1ubuntu16.04_amd64.deb
mysql-community-test_5.7.21-1ubuntu16.04_amd64.deb
mysql-community-server_5.7.21-1ubuntu16.04_amd64.deb
libmysqlclient-dev_5.7.21-1ubuntu16.04_amd64.deb
mysql-client_5.7.21-1ubuntu16.04_amd64.deb
libmysqld-dev_5.7.21-1ubuntu16.04_amd64.deb
libmysqlclient20_5.7.21-1ubuntu16.04_amd64.deb
mysql-common_5.7.21-1ubuntu16.04_amd64.deb
mysql-testsuite_5.7.21-1ubuntu16.04_amd64.deb
mysql-server_5.7.21-1ubuntu16.04_amd64.deb
mysql-community-source_5.7.21-1ubuntu16.04_amd64.deb
自动备份:
执行自动备份命令
/usr/bin/mysqldump -u root -p123456 databases> ./tinywan.sql && echo "success" || echo "fail"
mysqldump: [Warning] Using a password on the command line interface can be insecure.
发现出现一个警告:mysqldump: [Warning] Using a password on the command line interface can be insecure.
修改备份配置文件:vim /etc/mysql/conf.d/mysqldump.cnf,添加以下内容
[mysqldump]
user=root ## 新增
password=123456 ## 新增
PS:以上MySQL版本为5.7,5.6的备份配置文件都在一个文件中:/etc/mysql/my.cnf ,5.7和5.6还是有区别的
配置好后重启MySQL服务器
sudo systemctl restart mysql.service
继续上面的自动备份命令则不会再次出现警告啦!当然直接不用添加用户名和密码了
/usr/bin/mysqldump databases> ./tinywan.sql && echo "success" || echo "fail"
强烈建议吧!账号和密码放在配置文件中,防止别人的自动备份的脚本看到了
下面是一个自动备份的脚本
#!/bin/bash
#######################################################
# $Name: mysql_auto_backup.sh
# $Version: v1.0
# $Function: Backup MySQL Databases Script
# $Author: ShaoBo Wan (Tinywan)
# $organization: https://github.com/Tinywan
# $Create Date: 2017-06-27
# $Description: 定期备份MySQL数据库
####################################################### # Shell Env
SHELL_NAME="mysql_auto_backup.sh"
SHELL_TIME=$(date '+%Y-%m-%d-%H:%M:%S')
SHELL_DAY=$(date '+%Y-%m-%d')
SHELL_DIR="/home/www/data-backup"
SHELL_LOG="${SHELL_DIR}/logs/${SHELL_NAME}-${SHELL_DAY}.log"
LOCK_FILE="/tmp/${SHELL_NAME}.lock"
MYSQL_DUMP="/usr/bin/mysqldump"
MYSQL_BACKUP_DB_NAME="resty"
BACKUP_NAME=${MYSQL_BACKUP_DB_NAME}"-${SHELL_TIME}.sql" # Write Log
loglevel=0 #debug:0; info:1; warn:2; error:3
TIME=`date '+%Y-%m-%d %H:%M:%S'`
shell_log(){
local log_type=$1
local LOG_CONTENT=$2
# 这里的写入日志时间修改掉,经过一段时间的测试${TIME} 每次都是一个固定的时间,所以在这里修改为每次写入是自动获取当前时间写入日志
logformat="`date '+%Y-%m-%d %H:%M:%S'` \t[${log_type}]\t [${SHELL_NAME}] Function: ${FUNCNAME[@]}\t[line:`caller 0 | awk '{print$1}'`]\t [log_info: ${LOG_CONTENT}]"
{
case $log_type in
debug)
[[ $loglevel -le 0 ]] && echo -e "\033[34m${logformat}\033[0m" ;;
info)
[[ $loglevel -le 1 ]] && echo -e "\033[32m${logformat}\033[0m" ;;
warn)
[[ $loglevel -le 2 ]] && echo -e "\033[33m${logformat}\033[0m" ;;
error)
[[ $loglevel -le 3 ]] && echo -e "\033[31m${logformat}\033[0m" ;;
esac
} | tee -a $SHELL_LOG
} # Shell Usage shell_usage函数,用来告诉用户,这个脚本的使用方法
shell_usage(){
echo $"Usage: $0 {backup}"
} shell_lock(){
touch ${LOCK_FILE}
} shell_unlock(){
rm -f ${LOCK_FILE}
} mysql_zip(){
cd $SHELL_DIR
/bin/bzip2 $BACKUP_NAME
find ./ -mindepth 1 -maxdepth 3 -type f -name '*.bz2' -mmin +43200 | xargs rm -rf
find ./ -mindepth 1 -maxdepth 3 -type f -name *.sql -mmin +10080 | xargs rm -rf
find ./ -mindepth 1 -maxdepth 3 -type f -name *.log -mmin +10080 | xargs rm -rf
} # Backup MySQL weblive Database with mysqldump or innobackupex
mysql_backup(){
if [ -f "$LOCK_FILE" ];then
shell_log warn "${SHELL_NAME} is running"
exit 1
fi
shell_log info "mysql backup start"
shell_lock
#sleep 10
#$qMYSQL_DUMP $MYSQL_BACKUP_DB_NAME > $SHELL_DIR/$BACKUP_NAME
BACKUP_RES=$($MYSQL_DUMP $MYSQL_BACKUP_DB_NAME > $SHELL_DIR/$BACKUP_NAME && echo "success" || echo "fail")
if [ "${BACKUP_RES}" == "fail" ];then
shell_log error "MYSQL_BACKUP_DB error : ${BACKUP_RES}"
shell_unlock
exit 1
fi
mysql_zip
shell_log info "mysql backup stop"
shell_unlock
} # Main Function
main(){
case $1 in
backup) mysql_backup
;;
*) shell_usage
;;
esac
} #Exec
main $1
PS:以上脚本已经在5.7版本测试过,没有问题,前提是你的备份账号和密码必须提前在备份配置文件配置好
crontab 定时任务
# MsSQl自动备份 每天晚上23:55自动备份一次 2018-5-23 添加
55 23 * * * bash /root/bin/mysql_auto_backup.sh backup >/dev/null 2>&1
安全注意事项
1、禁止root账号远程登录
update user set host = "localhost" where user = "root" and host= "%";
flush privileges;
2、禁止项目用户的账号远程登录(项目配置文件)
update user set host = "localhost" where user = "web_user" and host= "%";
flush privileges;
同时绑定该账号只允许内网访问(如内网IP:172.19.230.1)
update user set host = "172.19.230.1" where user = "web_user" and host= "localhost";
flush privileges;
通过内网连接数据
mysql -h 172.19.230.1 -u web_user -p
3、针对远程需要登录的可以重新新建一个用户用于远程连接数据库
grant all on *.* to yc_user@'%' identified by 'yc123456' with grant option;
flush privileges;
方便客户端工具远程查询数据信息
4、最后账号信息
(1)root 禁止远程访问
(2)web_user 只允许内网访问,该用户暴露在项目代码中
(3)yc_user 可以远程访问,该用户不应该暴露在项目代码中
5、注意: 5.8 一定不要采取如下形式该密码:
use mysql;
update user set authentication_string="newpassword" where user="root";
而是使用下面方法
ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'
5.7 修改秘密是这样子的
update mysql.user set authentication_string=password('root') where user='root' ;
8.0 安装
1、配置文件路径
/etc/mysql/mysql.conf.d/mysqld.cnf
配置目录
1、配置文件的位置
# mysql --help | grep 'Default options' -A 1
上面命令执行后,会有这样的输出:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
(1)~/.my.cnf 和 /etc/my.cnf 文件是不存在(刚开始安装的时候)【全局配置】
(2)/etc/mysql/my.cnf 文件内容。【全局配置】
# cat /etc/mysql/my.cnf
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
!includedir 表示包含子配置目录。通过“!includedir”,在主配置文件中包含子配置文件
2、配置文件目录
├── mysql
│ ├── conf.d
│ │ └── mysql.cnf
│ ├── my.cnf -> /etc/alternatives/my.cnf
│ ├── my.cnf.fallback
│ ├── mysql.cnf
│ └── mysql.conf.d
│ └── mysqld.cnf
主配置文件 :/etc/mysql/my.cnf
辅助配置文件
- 服务端配置目录:/etc/mysql/mysql.conf.d/
- 客户端配置目录:/etc/mysql/conf.d/ (可以暂时不用配置)
服务端 mysqld.cnf 配置参考
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
port = 3306
# By default we only accept connections from localhost
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init-connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4 # 这里很重要️能让MySQL登陆链接变快速
skip-name-resolve # back_log 是操作系统在监听队列中所能保持的连接数
back_log = 300
# MySQL 服务所允许的同时会话数的上限
max_connections = 1263
# 每个客户端连接最大的错误允许数量,如果达到了此限制
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 1024
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 128M ## 缓存
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 256M # 在 cache 中保留多少线程用于重用
thread_cache_size = 64
query_cache_type = 1
# 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返回结果。
query_cache_size = 128M
# 只有小于此设定值的结果才会被缓冲
query_cache_limit = 4M
# 被全文检索索引的最小的字长
ft_min_word_len = 4 # 打开二进制日志功能
binlog_format = mixed
expire_logs_days = 7 slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql-slow.log
performance_schema = 0
explicit_defaults_for_timestamp #lower_case_table_names = 1
skip-external-locking default_storage_engine = InnoDB
#default-storage-engine = MyISAM
innodb_file_per_table = on
innodb_open_files = 500
innodb_buffer_pool_size = 1024M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120 bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1 interactive_timeout = 28800
wait_timeout = 28800 [mysqldump]
# 不要在将内存中的整个结果写入磁盘之前缓存. 在导出非常巨大的表时需要此项
quick
max_allowed_packet = 32M [myisamchk]
key_buffer_size = 16M
sort_buffer_size = 8M
read_buffer = 8M
write_buffer = 8M
# 查询模式
#sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
参考:
1、Linux(Ubuntu)下mysql5.7.17安装配置方法图文教程
2、安装mysql8.0.11及修改root密码、连接navicat for mysql的思路详解
MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)的更多相关文章
- Ubuntu16.04中Mysql 5.7 安装配置
记录在Ubuntu 16.04安装Mysql 5.7时遇到的一些问题. Mysql安装 使用如下命令进行安装: 1 sudo apt-get install mysql-server mysql-cl ...
- Angularjs学习---ubuntu12.04中karma安装配置
Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结 karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然 ...
- ubuntu16.04中docker安装curl拒绝连接问题
在Ubuntu16.04中安装docker ce,安装步骤按照官网说明https://docs.docker.com/engine/installation/linux/docker-ce/ubunt ...
- 【转】Nginx 学习笔记(十一)nginx下安装配置naxsi waf防火墙(附完整编译、配置)
原文地址:http://f2ex.cn/nginx-installed-configuration-naxsi-waf/ Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开 ...
- ubuntu16.04环境下安装配置openface人脸识别程序
参考http://blog.csdn.net/weixinhum/article/details/77046873 最近项目需要用到人脸训练和检测的东西,选用了OpenFace进行,因而有此文. 本人 ...
- httperf学习笔记(CentOS-6.6环境下安装配置)
新工作已经找到了,最近在忙着熟悉环境,昨天领导让我接触下httperf压力测试工具 百度了下,相关的文档,准备着手配置一个测试环境基于linux系统httperf+autobench+gnuplot, ...
- Ubuntu16.04中MySQL之中文不能插入问题
转自:http://blog.csdn.net/fr555wlj/article/details/55668476 今天下午在学习MySQL时,向表中插入一条数据含有中文,结果报错如下, ERROR ...
- mysql学习笔记(二:中的auto_increment 理解
1.auto_increment 理解1 auto_increment是用于主键自动增长的,从1开始增长,当你把第一条记录删除时,再插入第二跳数据时,主键值是2,不是1. 例如: create tab ...
- 关于ubuntu16.04中mysql root登陆不了的情况下(大多是未设置密码的情况)
1.先将当前用户改成 root用户:sudo su 2.进入安装路径,我的是:cd /etc/mysql/ 3.打开debian.cnf : gedit debian.cnf 4.找到:user pa ...
随机推荐
- LeetCode算法题-Reverse Words in a String III(Java实现)
这是悦乐书的第259次更新,第272篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第126题(顺位题号是557).给定一个字符串,您需要反转句子中每个单词中的字符顺序,同 ...
- Nginx 配置 https
从云服务提供商处申请证书 申请 https 证书教程-百度经验 申请下来的证书目录结构 . ├── Apache │ ├── 1_root_bundle.crt │ ├── 2_website ...
- 做为一个Python程序员的基本素养
今天在学习的过程中,明白了一些不是Python标准所必须要做的事情,二是做为一个合格的Python程序员应该所遵从的一些规范 分享给大家,有不足的地方请大家指正,此下是我学习的一点心得: 1.在给变量 ...
- CSS--字体|垂直居中|background
一,字体的设置 二,垂直居中 2.1,单行文本垂直居中 2.2,多行文本垂直居中 2.3,绝对定位元素垂直居中 三.颜色的表示法 四.background ---------------------- ...
- RESTful API规范
1. 域名 应该尽量将API部署在专用的域名下. https://api.example.com 如果确定API简单,不会有进一步的括在,可以考虑放在主域名之下. https://example.or ...
- 超哥笔记--linux准备知识(1)
一 岗位 前端小姐姐 python后端大神 测试工程师 测试+python 测试开发 运维工程师(背锅侠) -安全运维 -linux系统管理员 -桌面运维(helpdesk) -IDC机房运维(服务器 ...
- redis Lua学习与坑
1.在写lua脚本往redis中添加zadd 有序集合的时候一直报 "value is not a valid float"的错误,经过查询相关资料,最后发现,是顺序写反了. 相关 ...
- Cloudera Manager(CDH5)内部结构、功能包括配置文件、目录位置等
1. 相关目录 /var/log/cloudera-scm-installer : 安装日志目录./var/log/* : 相关日志文件(相关服务的及CM的)./usr/share/cmf/ : 程序 ...
- Linux删除文件夹和修改文件名
rm [选项] 文件 -f, --force 强力删除,不要求确认 -i 每删除一个文件或进入一个子目录都要求确认 -I 在删除超过三个文件或者递归删除前要求确认 -r, -R 递归删除子目录 -d, ...
- spring注解驱动--组件注册
为容器中注册Bean @Configuration代表该类是一个配置类,配置类起到的作用和xml配置文件一样 @Bean代表该方法的返回对象作为Bean加入IOC容器,默认Bean的id是方法的名称. ...