【注:可以在mysql中通过mysql> SELECT VERSION();来查看数据库版本】
整理:leo
一、连接MYSQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MYSQL。
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、再将root的密码改为djg345。
mysqladmin -u root -p ab12 password djg345
三、增加新用户 ......
今天装了一台Linux系统,以前都是RedHat,后来听说有Fedora了,一直没用过。正好项目里环境要用就想弄一个来玩玩,结果现在人家最新的是CentOS,就一张CD,其他的根据需要自己上网Down,(我不喜欢这样子就自己下载DVD版)。安装完之后没有图形界面,而且没有提示输入root密码,还得到单用户模式下修改。后来下载了一个图形界面,弄好之后在那个Synaptic Package Manager (很不不错的一个工具)下载Mysql、Jdk自动关联所需要的包自动下载安装。
安装好之后遇到一个问题,就是远程无法连接到这台机器的Mysql,user里已经加上了%,可就是不行。
后来几经搜索说要注释掉my.conf里的一个bind-address,这句话定义了只能127.0.0.1能访问3306。注释掉之后,重启mysql 一切OK了。 ......
1. 在使用Navicat 8 for MySQL客户端创建数据库时,编码的设置如下图:
2. 将安装目录F:\MySQL\MySQL Server 5.1下,my.ini文件设置变量值default-character-set=gbk (包含两处,可查找default-character-set),然后重启MYSQL服务。 ......
首先看看 jsp文件 java程序里有没有request.setCharacterEncoding("UTF-8");
字符编码问题,数据插入库中时,java编码和数据库编码不一致,导致插入数据库为乱码,看到为????的形式
将你的jsp页面编码改为GBK,数据库对应表的编码也改为GBK
编码一致,就不会出现乱码问题了
字符编码不对 就会这样了 你在建数据库的时候 最好加上这样一句
create database tea default character set utf8 collate utf8_general_ci;
set names 'utf8';
这是对数据库默认字符的设置 以后对数据库的操作都会使用utf8的字符编码
在你的程序里 也要适当的对字符进行处理 这要根据的你程序定 不一样的程序修改的形式不一样
像你以前在命令窗口下使用MySQL无法插入中文就是典型的字符不对造成的 你在对数据库操作之前 最好在命令窗口设置一下操作时的编码
例如 setchar utf8;
这样插入的时候就不会插不进去了 ......
Ubuntu 9.04 下用源安装了MySQL。默认情况下,用mysql shell登录创建数据库创建表插入中文数据后,用select查出来是中文,但用JDBC连接就出现乱码。网上搜索到解决方法,如下(先备份数据):
修改/etc/mysql/my.cnf
sudo gedit /etc/mysql/my.cnf
在my.cnf文件中的[client]段和 [mysqld]段加上以下两行内容:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
需要重启mysql服务
停用:
sudo mysqladmin shutdown -u root -p
然后输入mysql的root用户的密码
启用:
sudo mysqld_safe -user=mysql &
查看一下现在mysql的编码
sudo mysql -u root -p
mysql>show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| ......
一直以为mysql随机查询几条数据,就用
SELECT * from `table` ORDER BY RAND() LIMIT 5
就可以了。
但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上
查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低。
You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.
搜索Google,网上基本上都是查询max(id) * rand()来随机获取数据。
SELECT *
from `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) from `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 5;
但是这样会产生连续的5条记录。解决办法只能是每次查询一条,查询5次。即便如此也值得,因为15万条的表,查询只需要0.01秒不到。
上面的语句采用的是JOIN,mysql的论坛上有人使用
SELECT *
from `table`
WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) from `table` )
ORDER BY id LIMIT 1;
我测试了一下,需要0.5秒,速度也不错,但是跟上面的语句还是有很大差距。总觉有什么地方不正常。
于是我把语句改写了一 ......