MySQL出现User xxx already has more than 'max_user_connections' active connections问题
1.查看数据库最大连接数
show global variables like '%connection%';
2.查看所有连接人数
show PROCESSLIST;
3.修改最大连接数
set global max_user_connections=500-1000;
set global max_connections=500-1000;
MySQl出现The MySQL server is running with the --read-only option so it cannot execute this statement问题
问题出现的原因:
1.连到从库了。从库一般设置为只读。
2.主库的read_only参数被修改为1
解决问题:手工修改为0后,问题解决。问题是read_only为什么会设置为1呢
select @@read_only;
set global read_only=0;
MySQl出现Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column....问题
问题出现的原因:
MySQL 5.7.5后only_full_group_by成为sql_mode的默认选项之一,这可能导致一些sql语句失效。
解决问题:
1、修改my.conf或my.ini配置文件的sql_mode
2、手动修改:set @@sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
select @@sql_mode
MySQL安装
tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
rpm –ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
安装顺序:rpm包很多,只需安装debuginfo、shared、client、server
安装目录
配置文件路径 /etc/my.cnf
注意:安装完成后,会将配置文件放在etc目录下
vi /etc/my.cnf
数据文件路径:/var/lib/mysql
启动服务
service mysql start //自动安装到它自己制定的目录下,注册服务为mysql
service mysql status
service mysql stop
配置开机启动:
chkconfig --list //展现开机的服务
修改root密码
默认没有密码不安全:
mysqladmin –u root password "root"
Linux连接mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法
先停止mysql 服务 service mysqld stop
进入mysql安装目录bin/ 使用safe模式,进行重启:/usr/bin/mysqld_safe --skip-grant-tables
Warning警告提示,忽略即可。
登录:
mysql –uroot –proot
已经有密码进行修改
mysql> use mysql;
mysql> update user set password=PASSWORD('root') where user='root';
mysql> flush privileges;
验证是否成功安装
use mysql //打开mysql数据库
show tables //查看mysql数据库下的表
注意:Percona安装和mysql正式版的安装,在依赖上有区别。
打开3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save #修改生效
/etc/init.d/iptables status #查看配置
执行数据库的脚本
创建库和数据库表及数据
mysql>use jtdb;
mysql>set names utf8; #防止乱码
mysql>source jtdb.sql;
拓展:如何快速导入大数据库备份文件
导入sql文件非常慢的问题
查看目标数据库的参数
#客户端/服务器之间通信的缓冲区的最大大小
show variables like 'max_allowed_packet';
#TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length行
show variables like 'net_buffer_length';
导出sql文件时指定参数
mysqldump -uroot -p 数据库名 -e --max_allowed_packet=4194304 --net_buffer_length=16384 > sql文件路径
导入sql文件
use 目标数据库
source /usr/local/src/lotteryanalysis.sql
查看有多少表,每张表有多少记录
mysql 5.6中的information schema,就是存储了很多数据库的元数据,其实很多可以用来做数据库的性能查询用。
USE information_schema;
SELECT table_name,table_rows FROM TABLES
WHERE TABLE_SCHEMA = 'jtdb'
ORDER BY table_rows DESC;
注意:[1]mysql内部原因,统计不准确
开启MYSQL远程访问权限
语法:
grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码'];
grant all on *.* to 'root'@'%' identified by 'root';
或者指定IP地址
grant all on *.* to 'root'@'192.168.1.103' identified by 'root';
修改MYSQL数据库编码
vi /etc/my.cnf
在[mysqld]下边添加以下内容:
character-set-server=utf8
init_connect='SET NAMES utf8'
在[mysqld]上边添加以下内容:
[mysql]
default-character-set=utf8
重启MySQL:
systemctl restart mysqld
查看MySQL编码的命令行:
show variables like '%character%';