mysql 标签文章 - 李海鑫个人博客

(2009-1-21)设置、修改、重设mysql root密码

编辑文章 没有评论 :

本文HTML永久地址doc

概述:

这篇文章描述如何设置、修改、重设(如果不小心忘记root密码)mysql root密码,经常我在使用mysqladmin命令时,经常会出现类似如下信息:mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)',

步骤:

第一种方法

1、使用mysqladmin设置mysql root密码

如果你安装后重新就没有配置过密码,默认密码为空,使用下面命令设置

$ mysqladmin -u root password newpass

如果你想修改(更新)root密码,使用下面命令

$ mysqladmin -u root -p oldpassword newpass

如果使用上述命令,获得如下信息,

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

下面第二种方法可以解决

2、修改普通用户的密码

$ mysqladmin -u user-name -p oldpassword newpass
第二种方法:

mysql存储用户和密码放置于mysql数据库的use表里,你可以通过下面命令直接修改其密码

$ mysql -u root -p   #--登录mysql 服务器
mysql> use mysql;    #使用mysql数据库
mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE'; #--更新用户密码
mysql>flush privileges;  #--重新刷新权限
mysql> quit  #--退出mysql服务器

找回mysql root密码,

(2009-1-19)mysql学习笔记基础篇–第3章:数据类型

编辑文章 没有评论 :

本文HTML永久地址doc

MySQL每一个常量、变量和参数都有数据类型,它用来指定一定的存储格式、约束和有效范围。MySQL提供了多种数据库类型,主要包括数值型、字符串类型、日期和时间类型. 不同版本支持的数据类型可能会稍有不同,用户可以通过查询相应版本的帮助文件来获得具体的信息。关于数据类型更多的可以查看官方手册:http://dev.mysql.com/doc/refman/5.1/zh/column-types.html

1.数值类型

2.日期时间类型

MySQL中有很多数据类型可以用于日期和时间的表示,不同的版本可能有所差异,下表列出MySQL5.0中所支持的日期和时间类型

类型字节最小值最大值含义
DATE41000-01-019999-12-31表示年月日
DATETIME81000-01-01 00:00:009999-12-31 23:59:59表示年月日时分秒
TIMESTAMP4197001010800012038年的某个时刻更新为当前时间
TIME3-838:59:59838:59:59表示时分秒
YEAR119012155表示年份,占用更少的空间(默认是4位格式,允许时是

(2009-1-15)mysql学习笔记基础篇--第2章:SQL基础

编辑文章 没有评论 :

本文HTML永久地址doc

1.SQL简介

SQL是Structure Query Language(结构化查询语句的缩写,它是使用关系模型的数据库语言

2.SQL使用入门

sql语句主要分为三类别:

  1. DDL(Data Definition Languages)语句:数据库定义语句,这些语句定义了不同的数据库、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create 、drop、alter等
  2. DML(Data Manipulation Languages)语句:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括insert、delete、update和select等
  3. DCL(Data Control Languages)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别语句。这些语句定义数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

2.1DDL语句

#2.1.1创建数据库
mysql>create database test1;
mysql>create database test1;  < --重新输入会出现错误提示,因为上面一句一句新建了test1数据库
mysql>show databases;
mysql>use test1;
mysql>show tables;
mysql>use mysql;
mysql>show tables;
#2.1.2删除数据库
mysql>drop database test1;
#2.1.3创建表
mysql>create database test1;
mysql>use test1;
mysql>create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
mysql>desc emp;  < --查看表定义,其输出的信息不够全面,可以使用下面语句查看
mysql>show create table emp \G;    < --"\G"选项的含义是使得记录能够按照字段竖着排列,对于内容比较长的记录更便于显示
#2.1.4删除表
mysql>drop table emp;
#2.1.5修改表
mysql>create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
mysql>alter table emp modify ename varchar(20);  < --修改表字段类型
mysql>desc emp;
mysql>alter table emp  add column age int(3);       < --增加字段age,类型为int(3)
mysql>desc emp;
mysql>alter table drop cloume age;   < --将age字段删除
mysql>desc emp;
mysql>alter table emp  add column age int(3);
mysql>alter table emp change age age1 int(4);  < --改字段名
mysql>desc emp;
#change和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便,但是change的优点是可以修改列名称,modify则不能。
#2.1.6修改字段排列顺序
mysql>alter table emp change age1 age int(3);
mysql>desc emp;
mysql>alter table emp add birth date after ename;  < --将新增的birth字段加在ename后
mysql>desc emp;
mysql>alter table emp modify age int(3) first;        < --修改age字段,将其放在最前面
mysql>desc emp;
#change/first/after这些关键字都属于mysql在标准sql上的扩展,在其他数据库上不一定适用。
#2.1.7更改表名
mysql>alter table emp rename emp1;
mysql>desc emp;
mysql>desc emp1;

2.2DML语句

#2.2.1插入记录
mysql>alter table emp1 rename emp;
mysql>alter table emp drop age;  < --删除age字段
mysql>desc emp;
mysql>insert into emp(ename,hiredate,sal,deptno) values('zzx1','2000-01-01','2000',1);
mysql>insert into emp values('lisa','2003-02-01','3000',2);  < --按字段顺序直接插入可空字段,非空字段但是含有默认值的字段,自增字段,可以不用在insert后的字段列表里面出现,values后面只写对应字段的名词的value。这样没写的字段可以自动设置为:NULL,默认值,自增的下一个数字,这样在某些情况下可以大大减少SQL语句的复杂性

(2009-1-15)mysql学习笔记基础篇--第一章:mysql的安装和配置

编辑文章 没有评论 :

本文HTML永久地址doc

本系列主要写下上次购买在当当网购买一本mysql数据库管理的书doc的记录笔记,将按章节记录

Mysql支持几乎所有的操作系统,并且支持很大的表(MyISAM存储引擎支持的最大表尺寸为:65536TB),这些特性使得MySQL的发展非常迅猛,目前已经广泛应用在各行业中

1.Mysql的下载,

MySQL分为社区版和企业版,我们这里使用免费的社区版,企业版是收费的,提供更多的功能和更完备的技术支持

现在最新版本6.0,不过我使用的centos5.2自带的yum命令安装的是5.0版本,各版本的重要改进如下:

版本 重要改进 4.1 增加了子查询的支持;字符集增加了对UTF8的支持
5.0 增加了试图、过程、触发器的支持,增加了INFORMATION_SCHEMA系统数据库
5.1 增加了表分区的支持
6.0(Alpha) FALCON存储引擎的支持

在每个版本里,有分为standard、MaX 、Debug之分,已经在生产环境中使用Standard。

各版本的下载,可以直接到mysql.com官方下载,不过好像要注册一个网站帐号才可以下载,这里就不记录了,

2.安装

提供windows(noinstall包和安装包,其中noinstall不需要安装,直接解压就可以了,安装包和其他的 Windows程序一样,一部一部安装就可以了)linux包(很多版本,请自行下载)可以参考我在vps主机上写了:vps主机上三种配置mysql服务器方法

具体的安装步骤我就不重新写了,

3.配置

说一下mysql的配置文件,windows下是my.ini,linux下是my.cnf

各配置的优先顺序为:

windows:

WINDIR\my.ini> C:\my.cnf> INSTALLDIR\my.ini>default-extra-file

linux:

 /etc/my.cnf>$MYSQL_HOME/my.cnf>default-extra-file>~/my.cnf

其中使用安装程序(windows)在安装过程中有提供实例配置欢迎界面,提示一步一步配置。

4.启动和关闭MYsql服务

windows启动和关闭命令:

使用dos命令行

cd c:\mysql5.1\bin
c:\mysql5.1\bin>mysqld --console  

如果不加--console,启动关闭信息将不会在界面中显示,而是记录在安装目录下的data目录里面,文件名字一般是hostname.err

关闭使用

c:\mysql5.1\bin>mysqladmin -uroot shutdown

使用控制面板-->管理工具-->服务,和其他的windows程序服务一样地操作,这里我就不截图了

linux启动和关闭命令

service mysql start
service mysql stop
service mysql restart

(2009-1-10)在当当网购买一本mysql数据库管理的书

编辑文章 没有评论 :

个人觉得数据库方面的知识还需要加强,看到大家都觉得 《深入浅出MySQL数据库开发、优化与管理维护》不错,就在当当下了订单,中午11点下的订单,第二天下午3点就收到书,送书的速度不错,而且还是免运费。

本文HTML永久地址doc

(2009-1-8)mysql关于timeout的问题

编辑文章 没有评论 :

本文HTML永久地址doc

一般来讲,程序配置优化所产生的生产力远比提高硬件配置要好,可能一行蹩脚的SQL要吃掉你服务器整个内存,导航你的网站或服务器宕机。 优化程序和服务器配置是提高效率的第一步也是最好的办法,如果实在不行再从去升级你的硬件配置。 在日常的MySQL服务器中,wait-timeout这个参数非常有用。 (在部分MySQL的默认配置中可能没有wait-timeout这个参数项,你在[mysqld]节中加上即可) 参数意义:MySQL客户端的数据库连接闲置最大时间值。 参数默认值:默认值为8小时 。 这个参数的大概意思是某一个MySQL客户端连接闲置的最大时间值,即某一个MySQL客户端连接过程中,闲置的最大时间到达后服务器将其关闭。 MySQL 服务器所支撑的最大连接数是有限的,因为每一个连接、第一个表打开的操作都要消耗服务器内存,理想状态是当一个MySQL客户端连接完成工作就自动断开释放内存,如果你的你的网站有大量的MySQL链接请求,这些连接完成SQL执行任务后空闲着啥事也不干,白白占用内存资源,如果这些连接堆积起来,将导致MySQL超过最大连接数,从而无法新建MySQL连接,有可能导致“Too many connections”的错误。 可以在设置之前用show processlist查看一下MySQL状态,如果你发现你的MYSQL中有大量的Sleep进程,哪么你真的需要设置你的wait-timeout 了。依你的程序而定设置多大的值,我的设置wait-timeout=10,MySQL中的所有Sleep线程最多只能“睡”10秒,之后就被强行关闭了。

(2008-12-20)mysql数据库备份与还原命令

编辑文章 没有评论 :

本文HTML永久地址doc

备份MySQL数据库的命令

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql

还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

(2008-11-20)在vps上配置phpmyadmin

编辑文章 没有评论 :

本文HTML永久地址doc

安装mysql所需要的组件

yum -y install mysql-server php-mcrypt php-mbstring php-gd

进入预安装的目录

cd /var/www/html
wget http://prdownloads.sourceforge.net/phpmyadmin/phpMyAdmin-2.11.9.3-all-languages-utf-8-only.tar.gz


#tar zxvf phpMyAdmin-2.11.9.3-all-languages-utf-8-only.tar.gz
# mv phpMyAdmin-2.11.9.3-all-languages-utf-8-only phpmyadmin
#cd phpmyadmin
# mv config.sample.inc.php config.inc.php
# vi config.inc.php
修改$cfg['blowfish_secret'] = '' 为$cfg['blowfish_secret'] = 'test' 这里的test自个定义,

(2008-11-4)MySQL数据库的快速重建

编辑文章 没有评论 :

本文HTML永久地址doc

如果mysql不能启动了,库损害了,或者密码忘记了,而数据库里面又没有重要数据,可以这样重建mysql数据库:

用root用户操作:

/etc/init.d/mysql stop #先停止
rm -rf /var/lib/mysql #删除所有数据库
mysql_install_db #重新建库
/etc/init.d/mysql start #启动
mysqladmin password lihaixin #修改新密码为 lihaixin

另外也可以查看:

忘记MYSQL ROOT密码的修改方法doc

(2008-10-23)忘记mysql root密码的修改方法

编辑文章 没有评论 :

本文HTML永久地址doc

如果忘记了 MySQL 的 root 密码,可以用以下方法重新设置:

  1. KILL掉系统里的MySQL进程;
  2. 用以下命令启动MySQL,以不检查权限的方式启动;
    mysqld_safe -skip-grant-tables &
  3. 然后用空密码方式使用root用户登录 MySQL;
    mysql -u root
  4. 修改root用户的密码;
    mysql> update mysql.user set password=PASSWORD('123456') where User=root; mysql> flush privileges; mysql> quit
  5. 重新启动MySQL,就可以使用新密码登录了。
    mysql -u root -p123456

(2008-10-10)ecshop数据库相关问题

编辑文章 没有评论 :

本文HTML永久地址doc

  1. 系统数据库连接文件是data/config.php,关于链接数据库的帐号,密码等相关信息都在这里设置
  2. 保持原数据库和新数据库字符编码一致
  3. 数据库备份建议优先使用系统自带的操作备份,当然也可以使用phpmyadmin进行备份,还原系统是先安装好系统,才通过系统的还原数据库操作进行

(2008-10-10)linux下mysql数据库备份脚本

编辑文章 没有评论 :

本文HTML永久地址doc

#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by RoberT
#2007-11

#Setting
DBName=xineurope
DBUser=root
DBPasswd=
BackupPath=/home/BACKUP/
LogFile=/home/BACKUP/db.log
DBPath=/usr/local/mysql5.0.45/
BackupMethod=mysqlhotcopy
#Setting End

NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >;>; $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ];
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi

if [ -f $NewFile ];
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
else
if [ -z $DBPasswd ];
then
mysqlhotcopy -u $DBUser $DBName $DumpFile >;>; $LogFile 2>;&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >;>;$LogFile 2>;&1
fi
tar zcvf $NewFile $DumpFile >;>; $LogFile 2>;&1
echo "[$NewFile]Backup Success!" >;>; $LogFile
rm -rf $DumpFile
fi

echo "-------------------------------" >;>; $LogFile

(2008-5-6)构建 MySQL 数据库服务器

编辑文章 没有评论 :

构建 MySQL 数据库服务器


本文HTML永久地址 doc

在提到网站构架的时候,我们经常能够看到“LAMP”的说法,它就是“Linux + Apache + MySQL + PHP”。 MySQL+PHP的协同成功案例已经很多了。比如国外的PHPBB,VBB,国内的Discuz!论坛等等程序,都是用PHP + MySQL实现的。和那些商务专用数据库比起来,MySQL的功能和规模可能被好多人说的逊色一些,但对于我们个人来说,它的功能已经算是完备。而且,通 过Discuz!官方论坛上同时在线人数的数目,也可以证明MySQL的稳定性。

这里,介绍一下CentOS下MySQL数据库服务器的构建方

安装MySQL及相关组件


首先,安装MySQL。

[root@sample ~]# yum -y install mysql-server  ← 安装MySQL

Setting up Install Process
Setting up repositories
dag 100% |=========================| 1.1 kB 00:00
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 106 kB 00:00
update : ################################################## 261/261
Added 5 new packages, deleted 0 old in 2.02 seconds
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mysql-server to pack into transaction set.
mysql-server-4.1.20-1.RHE 100% |=========================| 29 kB 00:00
---> Package mysql-server.i386 0:4.1.20-1.RHEL4.1 set to be updated
--> Running transaction check
--> Processing Dependency: libmysqlclient.so.14(libmysqlclient_14) for package: mysql-server
--> Processing Dependency: perl-DBD-MySQL for package: mysql-server
--> Processing Dependency: perl-DBI for package: mysql-server
--> Processing Dependency: perl(DBI) for package: mysql-server
--> Processing Dependency: mysql = 4.1.20-1.RHEL4.1 for package: mysql-server
--> Processing Dependency: libmysqlclient.so.14 for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.14(libmysqlclient_14) for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.14 for package: mysql-server
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-DBD-MySQL to pack into transaction set.
perl-DBD-MySQL-2.9004-3.1 100% |=========================| 5.4 kB 00:00
---> Package perl-DBD-MySQL.i386 0:2.9004-3.1 set to be updated
---> Downloading header for mysql to pack into transaction set.
mysql-4.1.20-1.RHEL4.1.i3 100% |=========================| 35 kB 00:00
---> Package mysql.i386 0:4.1.20-1.RHEL4.1 set to be updated
---> Downloading header for perl-DBI to pack into transaction set.
perl-DBI-1.40-8.i386.rpm 100% |=========================| 11 kB 00:00
---> Package perl-DBI.i386 0:1.40-8 set to be updated
--> Running transaction check
Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
mysql-server i386 4.1.20-1.RHEL4.1 update 9.8 M
Installing for dependencies:
mysql i386 4.1.20-1.RHEL4.1 update 2.9 M
perl-DBD-MySQL i386 2.9004-3.1 base 111 k
perl-DBI i386 1.40-8 base 466 k

Transaction Summary
=============================================================================
Install 4 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 13 M
Downloading Packages:
(1/4): perl-DBD-MySQL-2.9 100% |=========================| 111 kB 00:00
(2/4): mysql-server-4.1.2 100% |=========================| 9.8 MB 00:11
(3/4): mysql-4.1.20-1.RHE 100% |=========================| 2.9 MB 00:03
(4/4): perl-DBI-1.40-8.i3 100% |=========================| 466 kB 00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: perl-DBI ######################### [1/4]
Installing: mysql ######################### [2/4]
Installing: perl-DBD-MySQL ######################### [3/4]
Installing: mysql-server ######################### [4/4]

Installed: mysql-server.i386 0:4.1.20-1.RHEL4.1
Dependency Installed: mysql.i386 0:4.1.20-1.RHEL4.1 perl-DBD-MySQL.i386 0:2.9004-3.1 perl-DBI.i386 0:1.40-8
Complete!