在Linux下访问不了MySQL数据库怎么回事
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。在Linux系统下无法访问mysql,这是怎么回事呢?Linux系统下无法访问mysql该怎么办呢?下面我们一起来看看解决方法。
Linux系统下无法访问mysql怎么办?
1、问题及异常
ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@75d634ea -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:
2、查找原因
费劲周知,确定是MySQL权限的问题
3、解决过程
1》 mysql -uroot -proot mydbName
2》 grant all privileges on *.* to wangs@‘%’ identified by ‘123456’;
3》 flush privileges;
4》 exit;
5》 /etc/init.d/mysql restart
4、命令的说明
进入 mysql ,用户为 root,密码为 root,数据库为 mydbName,-u 意为用户,-p 意为密码,
增加用户 wangs,所有权限,数据库为 *,后面的 .* 不可少,% 代表对所有远程的 IP 地址,如果要限定 IP 地址的话,单独写上 IP 地址,
密码是 123456,注意引号 ‘ 不可少,用来表示是字符串。
以上命令和过程均不可省略。
补充:MySQL 数据库常用命令
create database name; 创建数据库
use databasename; 进入数据库
drop database name 直接删除数据库,不提醒
show tables; 显示表
describe tablename; 查看表的结构
select 中加上distinct去除重复字段
mysqladmin drop databasename 删除数据库前,有提示。
显示当前mysql版本和当前日期
select version(),current_date;
数据库维护方法
在MySQL使用的过程中,在系统运行一段时间后,可能会产生碎片,造成空间的浪费,所以有必要定期的对MySQL进行碎片整理。
当删除id=2的记录时候,发生的现象
这个时候发现磁盘的空间并没有减少。这种现象就叫做碎片化(有一部分的磁盘空间在数据删除以后(空),还是无法被操作系统所使用。)
常见的优化:
# alter table xxx engine myisam;
# optimize table t1;
注意: 在实际开发的过程中,上面两个语句尽量少使用,因为在使用的过程中,MySQL的表的结构会整体全部重新整理,需要消耗很多的资源,建议在凌晨两三点钟的时候执行。(在linux下有定时器脚本可以执行,crontab)