一、Fedora14下MySQL的安装配置
[root@localhosttest1]# yum install mysql mysql-server
yuminstall mysql mysql-server
Installing:
mysql i686 5.1.60-1.fc14 updates 894 k
mysql-server i686 5.1.60-1.fc14 updates 8.3 M
Installingfor dependencies:
mysql-libs i686 5.1.60-1.fc14 updates 1.2 M
perl-DBD-MySQL i686 4.017-1.fc14 fedora 137 k
perl-DBI i686 1.613-1.fc14 fedora 775 k
**********************************************************************
**********************************************************************
3.1.1启动MySQL
[ root@localhost Desktop]# /etc/init.d/mysqld start
Starting mysqld: [ OK ]
#Mysql 默认的端口是 3306
[root@localhostDownloads]# netstat -nat | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
3.1.2、停止
#mysqladmin -u root -p shutdown
3.1.3、自动启动
1)察看mysql是否在自动启动列表中
[root@localhostDownloads]# chkconfig --list | grep mysql
#如果没有在自动启动列表中,查询结果为空,安装好后MySQL已经自动加入到启动列表中了。
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2)把MySQL添加到你系统的启动服务组里面去
[root@localhost Desktop]# chkconfig --levels 235 mysqld on
[root@localhost Desktop]# chkconfig --list | grep mysql
mysqld 0:off 1:off 2:on 3:on 4:off 5:on 6:off
3)如果要把MySQL从启动服务组里面删除,可运行下面的命令
[root@localhostDownloads]# chkconfig --del mysql
**********************************************************************
3.2、登录MySQL
登录MySQL的命令是mysql,mysql的使用语法如下:
mysql[-u username] [-h host] [-p[password]] [dbname]
username与password分别是MySQL的用户名与密码,mysql的初始管理帐号是root,没有密码,这个root用户不是Linux的系统用户root。由于初始没有密码,第一次进时只需键入mysql即可。
[root@localhostDownloads]# mysql
YourMySQL connection id is 1
Serverversion: 5.5.24 MySQL Community Server (GPL)
Type'help;' or '\h' for help. Type '\c' to clear the current inputstatement.
mysql>
出现了“mysql>”提示符,表示安装成功了!现在已进入到MySQL控制台了。
**********************************************************************
4.1、MySQL的几个重要目录
1、数据库目录
/var/lib/mysql/
2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)
3、相关命令
/usr/bin(mysqladminmysqldump等命令)
4、启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
4.2、用rpm包安装的MySQL没有安装/etc/my.cnf文件
解决方法:
[root@localhostmysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
**********************************************************************
**********************************************************************
5、密码设置与修改
5.1.1、方法一:用mysqladmin
root@localhost#mysqladmin–u root password 123456
5.1.2、方法二:利用SQL语句SET PASSWORD
//设置当前用户的密码。
mysql>SETpassword =PASSWORD(‘123456’);//MySQL中每个命令后都要以分号;结尾
QueryOK, 0 rows affected (0.00 sec)
mysql>\q #或者用quit命令,退出mysql。
Bye
如果要设置当前服务器主机上的一个特定用户的口令,可用下面的SQL语句:
SET PASSWORDFOR user = PASSWORD('some password')
只有具备存取mysql数据库的用户可以这样做。用户应该以user@hostname格式给出,这里user和hostname完全与他们列在mysql.user表条目的User和Host列一样
5.1.3、方法三:修改mysql数据库中的user表的password字段
mysql>use mysql
Readingtable information for completion of table and column names
Youcan turn off this feature to get a quicker startup with -A
#这里出现这个提示是因为在登陆时没有加上-A参数,故在usedbname时,会预读数据库信息,当使用-A参数时,就不预读数据库信息,这样usedbname执行速度会比较快。
[root@localhostDownloads]# mysql -u root -p -A
mysql>use mysql;
mysql>update user set password=password('123321') where user='root';
QueryOK, 4 rows affected (0.00 sec)
Rowsmatched: 4 Changed: 4 Warnings: 0
mysql>flush privileges;
修改mysql的user表后需要flushprivileges刷新MySQL的系统权限相关表,从mysql数据库授权表中重新装载权限。
我这里用mysqladmin命令修改root密码
[root@localhostDownloads]# mysqladmin -u root password
Newpassword:
Confirmnew password:
5.1.4设置密码后以后用默认账户root登陆就必须输入密码了,没输入密码会出错
[root@localhostDownloads]# mysql
ERROR1045 (28000): Access denied for user 'root'@'localhost' (usingpassword: NO)
[root@localhostDownloads]# mysql -u root -p
Enterpassword:
Welcometo the MySQL monitor. Commands end with ; or \g.
**********************************************************************
5.2、忘记了mysql的root用户密码解决办法如下:
1、杀掉mysql进程
[root@localhostDownloads]# killall mysqld
2、用--skip-grant-tables参数启动mysqld
[root@localhostDownloads]# mysqld_safe --skip-grant-tables&
3、然后进入mysql对mysql数据库中的user表进行改密码
[root@localhostDownloads]# mysql
mysql>use mysql
Databasechanged
mysql>update user set password=password('123321') where user='root';
mysql>flush privileges;
mysql>quit
[root@localhostmysql]# /etc/init.d/mysql restart
**********************************************************************
**********************************************************************
6、MySQL的常用操作
MySQL中每个命令后都要以分号;结尾
6.1.1、显示数据库
mysql>show databases;
+--------------------+
|Database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
|test |
+--------------------+
4rows in set (0.00 sec)
MySQL刚安装完有两个数据库:mysql和test。mysql里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。
**********************************************************************
6.1.2、显示数据库中的表
mysql>use mysql ##选择mysql这个数据库
Databasechanged
mysql>show tables
->;
+---------------------------+
|Tables_in_mysql |
+---------------------------+
|columns_priv |
|time_zone_transition_type |
|user |
+---------------------------+
24rows in set (0.00 sec)
**********************************************************************
6.1.3、describe显示表的结构
mysql>describe user;
+------------------------+-----------------------------------+------+-----+---------+-------+
|Field | Type | Null |Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
|Host | char(60) | NO |PRI | | |
|User | char(16) | NO |PRI | | |
|Password | char(41) | NO | |
可看到user表中有用户、密码等字段。
**********************************************************************
**********************************************************************
7.1、MySQL在Linux下数据库名、表名、列名、别名大小写的问题
Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
在/etc/my.cnf中的[mysqld]后添加添加
lower_case_table_names=1不区分大小写。=0,区分大小写
重启MySQL # /etc/init.d/mysql restart
注意:要是你是在区分大小写的情况建的数据库或表,那这些数据库或表名在硬盘上的文件名就是你建数据库或表时指定的名字,而在不区分大小写的情况下建的数据库或表,MySQL会将你输入的数据库名或表名转换成小写,再进行相关操作,故会找不到名字含大写字母的表。
示例:要是在区分大小写的情况下建了一个表Student,那么在不区分大小写的情况下,是找不到这个表的。
mysql>show tables;
+------------------+
|Tables_in_school |
+------------------+
|Student |
|aa |
|dd |
+------------------+
3rows in set (0.01 sec)
mysql>describe student;
ERROR1146 (42S02): Table 'school.student' doesn't exist
mysql>describe Student; #用大写Student,也找不到这个表,可Student明明存在
ERROR1146 (42S02): Table 'school.student' doesn't exist
7.2、MySQL在Linux下数据库名、表名、列名、别名大小写规则:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下刚不区分大小写。
3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATETABLE T(
AVARCHAR(10) BINARY
);
B、使用alter修改:
ALTERTABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysqltable editor中直接勾选BINARY项。
**********************************************************************
**********************************************************************
8、MySQL小例子
8.1.1、建数据库
mysql>create database school;
QueryOK, 1 row affected (0.00 sec)
8.1.2、建表
mysql>use school;
Databasechanged
mysql>create table Student(
->Sno varchar(10) primary key,
->Sname varchar(20),
->Sage smallint
->);
QueryOK, 0 rows affected (0.05 sec)
8.1.3、显示刚建好的表
mysql>describe student;
ERROR1146 (42S02): Table 'school.student' doesn't exist
#Linux下mysql安装完后是默认区分表名的大小写,不区分列名的大小写;
mysql>describe Student;
+-------+-------------+------+-----+---------+-------+
|Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
|Sno | varchar(10) | NO | PRI | NULL | |
|Sname | varchar(20) | YES | | NULL | |
|Sage | smallint(6) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3rows in set (0.04 sec)
8.1.4、插入1条数据
mysql>insert into Student(Sno, Sname, Sage)
->values('123456', 'Linux菜鸟',22);
QueryOK, 1 row affected, 1 warning (0.02 sec)
8.1.5、查询
mysql>select * from Student;
+--------+---------+------+
|Sno | Sname | Sage |
+--------+---------+------+
|123456 | Linux?? | 22 |
+--------+---------+------+
1row in set (0.00 sec)
#这里中文出现乱码了,没找到解决方法。暂时先把Sname这个字段的数据改成英文。
8.1.6、更改数据
mysql>update Student set Sname='LinuxNewbie' where Sname like 'Linux%';
QueryOK, 1 row affected (0.02 sec)
Rowsmatched: 1 Changed: 1 Warnings: 0
#再次进行查询
mysql>select * from Student;
+--------+-------------+------+
|Sno | Sname | Sage |
+--------+-------------+------+
|123456 | LinuxNewbie | 22 |
+--------+-------------+------+
8.1.7、删除数据库、表
mysql>drop database school;
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
参考资料:MySQL控制台常用命令退出控制台与退出MySQL
Youcan turn off this feature to get a quicker startup with -A