mysql DB(学习笔记)

阅读更多

1、mysql数据库有两种驱动:
MySQL Connector/J Driver、MMMysql driver。

2、导入导出数据库命令:(bin目录下)
导出:mysqldump -u root -p bokele   >c:/mysql.sql   --default-character-set=gbk  
导入:C:\mysql\bin\> mysql -u root -p 说明:C:\mysql\bin\表示进入mysql程序根目录
C:\helloapp\schema\sampledb.sql是要导入数据库的文件的位置
c:/mysql.sql是导出的sql文件
--default-character-set=gbk   指编码方式

3、修改root口令:(bin目录下)
bin>mysql -u root -p
mysql>set password for root@localhost=password('123');
说明:将root的口令设置为123

4、启动停止mysql客户程序(bin目录下)
1)mysql -u root -p
2)(输入密码)
3)create database SAMPLEDB
4)user SAMPLE
5)(各种sql操作)
6)exit(退出)

5、启动和停止mysql服务(命令行下)
启动:net start mysql    停止:net stop mysql

6、注册和删除mysql服务(bin目录下)
注册:mysqld-nt --install       删除:mysqld-nt --remove

7、导入mysql数据库时出现:Data too long for column '***' at row *,
描述:mysql用UTF8字符集,备份文件(***.sql)是gbk格式的,运行C:\mysql\bin\> mysql -u root -p 分析:因为mysql用utf8编码,所以一个字节占24位(UTF8字符是可变长度,英文8位,中文24位,为满足全是中文情况,用24位表示),但mysql的varchar类型有最大长度,而255×24可能超过最大长度,所以报错。可见原备份文件建数据库时应该使用的不是UTF8,而应为一个字符占8位的latin1编码方式,找到问题答案。
解决:在建表文件顶端加入以下语句:
drop database if exists Web;//Web为要建的数据库
create database Web default charset=latin1 ;
use Web;
set   charset   latin1;

7. 配置字符集

 建库时配置字符集

create database testxxx default charset=utf8

建表时配置字符集

CREATE TABLE `t_agent` (
`ID` smallint(5) NOT NULL
) DEFAULT CHARSET=utf8 ;

修改字符集

Windows平台
windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart

/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。

[编辑]Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql

8. 配置排序字符集

myisamchk -r -q --set-character-set=charset

9、本机或远程访问mysql时,mysql进行了权限控制,在mysql.user表中记录了访问主机IP和权限的关系 。
问题一:远程登陆mysql的话: 
回复一:先在Mysql本机登录后,修改mysql.user表,其中hose=%表示远程连接的用户名,如果没有host=%的记录,你可以把host=localhost的两个记录的其中一个改过来,但一定要加上密码。 
回复二: 假如Database:Test  
  创建用户:Jacky   密码:   pwd  
  进入Mysql   
  >grant   insert,delete,update,select,drop,create   on   Test.*   to   Jacky@"%"   identified   by   "pwd";    
回复三: 用它试试:  
  mysql>GRAND   ALL   ON   DTBASE.*   TO   [email protected]   IDENTIFIED   BY   "PASSWORD"   
//joe是用户名
问题二:本地登陆mysql的话:
max经验:我在本机用Mysql control center登陆mysql,但总是显示“ERROR 1130:Host 'taiji-renyang' is not allowed to connect to this MySQL server”,后来发现是因为mysql.user表中只有HostName为localhost的记录,而MySql control center的配置为HostName:192.168.8.99,虽然192.168.8.99就是我得IP,但服务器识别不出来,终于搞清了!!!

10.登陆url目前只能为:jdbc:mysql://localhost:3306/test,因为目前mysql数据库中user表只存了localhost这一个连接,如果用localhost的IP就不行,因为表中没有存。

11.
查看所有数据库语句为:show databases;
进入某个数据库:use ***;(*** stand for a database)
进入某数据库后查看此数据库中所有的表:show tables;

12.通过mysql control center导入导出sql语句:
a. 确保Mysql CC连接
b. 选择相应的库.表 =〉右键 =〉工具 =〉显示创建语句 =〉选中想要的表(可选择所有的表) =〉执行 => tools=>Show Create=>选中想要的表(可选择所有的表)=>Execuete

或者在sql中,执行:SHOW CREATE TABLE table_name;

 

你可能感兴趣的:(MySQL,SQL,SQL,Server,C#,C++)