Mysql 查看连接数 查看Mysql数据库文件位置 mysql清空表内数据
2013-08-13 11:52
891 查看
1、Mysql 查看连接数
命令: show processlist;
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
show processlist;
可以通过获取到的相关进程ID,可以使用kill 进程ID,命令终止相关SQL语句的运行.
只列出前100条,如果想全列出请使用
show full processlist;
2、数据库连接池应用中数据库服务器断开超时连接的问题
查看文件/etc/my.cnf,查询有关超时配置的参数:
mysql> show variables like '%timeout';
mysql> show variables like '%timeout';
我们可以在属性组mysqld下面修改如下两个参数:
interactive_timeout、wait_timeout
MySQL数据库服务器配置的连接超时时间默认是8小时,如果修改的超时时间足够长的话,就不会出现连接断开的问题。但是,如果有很多应用都在使用数据库连接池,大量的数据库连接资源一直被占用,严重的话可能使数据库服务器宕机,而且,也会使一些攻击者伪造大量请求,使数据库服务器负荷过载而宕机,从而影响应用处理业务。
3、Mysql清空表内数据那语法
TRUNCATE TABLE 表名
4、LINUX查看Mysql数据库文件位置
find / -name "mysql" -print
一般来说mysql是放在/usr/local/mysql/下的。
然后在其bin目录下有个mysql_config文件,vi:
ldata='/usr/local/mysql/var'
5、更改MySQL数据库的数据库名
方法1:
use information_schema;
mysql> select table_name from tables where table_schema='数据库名1';
mysql> rename table 数据库名1.ttt to 数据库名2.ttt;
方法2:
数据库默认是采用的INNODB存储引擎,不能直接修改数据库的名称,所以现转换成MyISAM存储引擎在修改表名在转换成INNODB存储引擎就好了
show processlist; #这一步主要查看有没有其他进程连接,要保证没有其他程序操作数据库。
mysql> alter table t1 engine=MyISAM;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> exit
进入mysql 数据库文件夹位置,修改数据库文件夹名
[root@mysqludf var]# mv 源数据库名称 目标数据库名;
mysql> use目标数据库名;
Database changed
mysql> alter table t1 engine=INNODB;
注意,在改名之前必须现转换存储引擎,否则会报错,你想换的这个名称就换不成了,只能换另外一个名称了。
mysql> USE mysql;
添加一个新的 root 用户, 密码为空, 只允许 192.168.1.100 连接
GRANT ALL PRIVILEGES ON *.* TO
'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;
添加一个新的 root 用户, 密码为helloworld, 允许 任何主机连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'helloworld' WITH GRANT OPTION;
查看现有用户,密码及允许连接的主机
mysql> SELECT User, Password, Host FROM user;
7、MySQL备份和恢复
使用mysqldump命令导出数据库
导出整个数据库的语法格式
mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)
只导出表的结构,用mysqldump的-d选项
mysqldump -uroot -p -d 数据库名 > 文件名.sql
如果想导出表 test1,test2,test3 的 表结构,加-d就可以了
mysqldump -uroot -p -d 数据库名 test1 test2 test3 > createtab.sql
如果想导出表 test1,test2,test3 的 表结构和数据?
只要在导入的时候不要加-d,就可以同时导入表结构和数据
mysqldump -uroot -p 数据库名 表名1,表名2 >文件名.sql
还原
方法一:
建立你要还原的数据库,输入"create database 数据库名;"
切换到刚建立的数据库,输入"use 数据库名;",回车;
导入数据,输入"source 数据库名.sql;",回车,开始导入,
再次出现"mysql>"并且没有提示错误即还原成功。
方法二:
[root@localhost mysql]# mysql -u root -p 数据库名<数据库名.sql,输入密码即可。
如何查看mysql表 ; 查看数据库show databases ;使用数据库use databases; 查看表 show tables: 看表结构describe table;
8、更改MySQL数据库目录位置
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把MySQL目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改
socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
[mysql d]
socket=/var/lib/mysql .sock
[mysql ]
socket=/tmp/mysql .sock
6、修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
7、重新启动MySQL服务
/etc/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
还要注意目录的属主和权限。
代码:
[root@sample ~]# chown -R mysql:mysql /home/data/mysql/ ← 改变数据库的归属为mysql
[root@sample ~]# chmod 700 /home/data/mysql/test/ ← 改变数据库目录属性为700
[root@sample ~]# chmod 660 /home/data/mysql/test/* ← 改变数据库中数据的属性为660
9、mysql错误:Table XXX is marked as crashed and should be repaired
myisamchk -f xxxx/*.MYI
mysqlcheck -aro xxxx -uusername -ppassword
% myisamchk --recover --quick /path/to/tblName
% myisamchk --recover /path/to/tblName
% myisamchk --safe-recover /path/to/tblName
第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题
命令: show processlist;
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
show processlist;
可以通过获取到的相关进程ID,可以使用kill 进程ID,命令终止相关SQL语句的运行.
只列出前100条,如果想全列出请使用
show full processlist;
2、数据库连接池应用中数据库服务器断开超时连接的问题
查看文件/etc/my.cnf,查询有关超时配置的参数:
mysql> show variables like '%timeout';
mysql> show variables like '%timeout';
我们可以在属性组mysqld下面修改如下两个参数:
interactive_timeout、wait_timeout
MySQL数据库服务器配置的连接超时时间默认是8小时,如果修改的超时时间足够长的话,就不会出现连接断开的问题。但是,如果有很多应用都在使用数据库连接池,大量的数据库连接资源一直被占用,严重的话可能使数据库服务器宕机,而且,也会使一些攻击者伪造大量请求,使数据库服务器负荷过载而宕机,从而影响应用处理业务。
3、Mysql清空表内数据那语法
TRUNCATE TABLE 表名
4、LINUX查看Mysql数据库文件位置
find / -name "mysql" -print
一般来说mysql是放在/usr/local/mysql/下的。
然后在其bin目录下有个mysql_config文件,vi:
ldata='/usr/local/mysql/var'
5、更改MySQL数据库的数据库名
方法1:
use information_schema;
mysql> select table_name from tables where table_schema='数据库名1';
mysql> rename table 数据库名1.ttt to 数据库名2.ttt;
方法2:
数据库默认是采用的INNODB存储引擎,不能直接修改数据库的名称,所以现转换成MyISAM存储引擎在修改表名在转换成INNODB存储引擎就好了
show processlist; #这一步主要查看有没有其他进程连接,要保证没有其他程序操作数据库。
mysql> alter table t1 engine=MyISAM;
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> exit
进入mysql 数据库文件夹位置,修改数据库文件夹名
[root@mysqludf var]# mv 源数据库名称 目标数据库名;
mysql> use目标数据库名;
Database changed
mysql> alter table t1 engine=INNODB;
注意,在改名之前必须现转换存储引擎,否则会报错,你想换的这个名称就换不成了,只能换另外一个名称了。
6、配置 Mysql 允许远程连接
切换到 mysql DBmysql> USE mysql;
添加一个新的 root 用户, 密码为空, 只允许 192.168.1.100 连接
GRANT ALL PRIVILEGES ON *.* TO
'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;
添加一个新的 root 用户, 密码为helloworld, 允许 任何主机连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'helloworld' WITH GRANT OPTION;
查看现有用户,密码及允许连接的主机
mysql> SELECT User, Password, Host FROM user;
7、MySQL备份和恢复
使用mysqldump命令导出数据库
导出整个数据库的语法格式
mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)
只导出表的结构,用mysqldump的-d选项
mysqldump -uroot -p -d 数据库名 > 文件名.sql
如果想导出表 test1,test2,test3 的 表结构,加-d就可以了
mysqldump -uroot -p -d 数据库名 test1 test2 test3 > createtab.sql
如果想导出表 test1,test2,test3 的 表结构和数据?
只要在导入的时候不要加-d,就可以同时导入表结构和数据
mysqldump -uroot -p 数据库名 表名1,表名2 >文件名.sql
还原
方法一:
建立你要还原的数据库,输入"create database 数据库名;"
切换到刚建立的数据库,输入"use 数据库名;",回车;
导入数据,输入"source 数据库名.sql;",回车,开始导入,
再次出现"mysql>"并且没有提示错误即还原成功。
方法二:
[root@localhost mysql]# mysql -u root -p 数据库名<数据库名.sql,输入密码即可。
如何查看mysql表 ; 查看数据库show databases ;使用数据库use databases; 查看表 show tables: 看表结构describe table;
8、更改MySQL数据库目录位置
MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把MySQL目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改
socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
[mysql d]
socket=/var/lib/mysql .sock
[mysql ]
socket=/tmp/mysql .sock
6、修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
7、重新启动MySQL服务
/etc/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。
还要注意目录的属主和权限。
代码:
[root@sample ~]# chown -R mysql:mysql /home/data/mysql/ ← 改变数据库的归属为mysql
[root@sample ~]# chmod 700 /home/data/mysql/test/ ← 改变数据库目录属性为700
[root@sample ~]# chmod 660 /home/data/mysql/test/* ← 改变数据库中数据的属性为660
9、mysql错误:Table XXX is marked as crashed and should be repaired
myisamchk -f xxxx/*.MYI
mysqlcheck -aro xxxx -uusername -ppassword
% myisamchk --recover --quick /path/to/tblName
% myisamchk --recover /path/to/tblName
% myisamchk --safe-recover /path/to/tblName
第一种是最快的,用来修复最普通的问题;而最后一种是最慢的,用来修复一些其它方法所不能修复的问题
相关文章推荐
- MySQL数据文件存储位置的查看方法
- 详述查看 MySQL 数据文件存储位置的方法
- 详述查看 MySQL 数据文件存储位置的方法
- 查看MySql数据库物理文件存放位置
- MySQL数据文件介绍及存放位置
- 快速查看Mysql数据库数据文件存放地址
- linux上改变mysql数据文件的位置
- CentOS 环境下更改MySQL数据文件目录位置
- MYSQL数据文件存放位置及说明
- 怎么样使用Navicat for MySQL 导出mysql中的数据和将sql数据库文件导入到mysql数据库中
- linux mysql 更改MySQL数据文件目录位置
- 怎样查看MySql数据库物理文件存放位置
- 怎么样使用Navicat for MySQL 导出mysql中的数据和将sql数据库文件导入到mysql数据库中
- 如何修改mysql数据文件存储位置
- 如何修改mysql数据文件存储位置
- Mysql初次安装修改密码和 数据文件位置
- Linux下查看Mysql的my.inf配置文件位置
- WINDOWS下更改MYSQL数据路径(datadir)后服务启动1067解决不能改变mysql数据库存储位置
- MySQL-5.7中InnoDB表数据文件存储位置
- 查看MySql数据文件路径