当前位置:首页 » Mysql技术教程

mysql常用操作

2012-04-16 10:50 本站整理 浏览(14)

1、MySQL初始化root密码/usr/bin/mysqladmin -u root password qwe123

然后使用 mysql -uroot -p

输入密码后可以登录。

2、赋予访问权限//进入MySQL服务器

2 d:\mysql\bin\>mysql -h localhost -u root

3 //赋予任何主机访问数据的权限

4 mysql>GRANT ALL PRIVILEGES ON *.* TO

'root'@'%' IDENTIFIED BY 'qwe123' WITH GRANT OPTION;

5 //使修改生效

6 mysql>FLUSH PRIVILEGES

3、导出数据库mysqldump -uxxx -pxxx --default-character-set=utf8 databasename [tablename] > a.sql

只导出表结构:

mysqldump --opt -d 数据库名 -u root -p > xxx.sql

只导出数据:

mysqldump -t 数据库名 -uroot -p > xxx.sql

导出某个表:

mysqldump -uroot -p -B数据库名 --table 表名 > xxx.sql

4、导入数据库mysql> use database;

mysql> source /root/桌面/nconf1029v1.sql

#mysql 数据库名 < 文件名

5、乱码问题1. 数据库表中字段的字符集设置 。show create table TableName 或 show full columns from tableName

2 当前联接系统参数 show variables like 'char%'

数据库连接串中指定字符集

URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk

用alter语句. 如果数据库已经有数据表了, 那每个表都要修改. (修改数据库的字符集不会改变原有数据表的字符集)

utf8:

ALTER DATABASE `数据库` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

ALTER TABLE `数据表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

gbk (包含gb2312):

ALTER DATABASE `数据库` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci

ALTER TABLE `数据表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci

实际中有可能填入的数据就不是utf8,比如脚本执行的通常都是latin1的,这个时候尽管转码也还是会出现乱码,就必须写入的时候写入utf8才可以。

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

仍有问:使用source x.sql导入后,用工具打开是乱码,检查不到什么错误。但使用工具导入,则不出乱码。

6,修改密码mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

mysql> FLUSH PRIVILEGES;

7,无法登录Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误.删除user.user中值为NULL的,或更新NULL为test 1)delete from user where user is NULL 2)update user set user=‘test‘ where user is NULL.

我使用如下两句话后,数据库变正常。

delete from user where user = '';

delete from user where Password = '';

之后重新赋予权限就可以了。

8,查看结构mysql> show create table ConfigClasses;

desc ConfigClasses;

9,mysql数据库应用之删除表中所有数据但不删除表结构mysql 删除表中所有数据,但不删除表结构。这个问题在项目中碰到,想要清空数据库内容,但是不能删除表结构,表面上这个问题是很简单的,针对每个表清空即可。但是实际中,当项目的数据库中存在的表数量较多的时候,就不那么容易了,于是我们想出使用存储过程来实现。

准备一个存储过程,我要删除的数据库是icinga,要删除别的可以替换,等会使用

CREATE PROCEDURE clear()

BEGIN

DECLARE done INT DEFAULT 0;  #游标的标志位

DECLARE name varchar(50);

DECLARE cmd varchar(150);

DECLARE tb_name CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema='icinga';

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

OPEN tb_name;

REPEAT

FETCH tb_name INTO name;

IF NOT done THEN

#set cmd=concat('Delete from ',DB_NAME,'.','`',`name`,'`');

set cmd=concat('TRUNCATE table ','icinga','.','`',`name`,'`');  # 拼删除命令

SET @E=cmd;

PREPARE stmt FROM @E;

EXECUTE stmt;

DEALLOCATE PREPARE stmt;

END IF;

UNTIL done END REPEAT;

CLOSE tb_name;

END;
然后登录mysql
mysql -h 10.1.70.41 -uroot -p

mysql>delimiter // #以//作为分割,默认的是;

mysql>复制上面的procedure过来

mysql>//

然后创建成功。

mysql>use icinga
mysql>call clear

就调用了。最后调整回来间隔;

mysql>delimiter ;

10 创建数据库时候指定编码

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

mysql 编码可以去看my.ini里面有很多配置。