Heim  >  Artikel  >  Datenbank  >  MYSQL RPM包安装_MySQL

MYSQL RPM包安装_MySQL

WBOY
WBOYOriginal
2016-06-01 13:32:56886Durchsuche

bitsCN.com

MYSQL RPM包安装

 

mysql Oracle官方下载 类型特多 看起来很让人头痛  我们选择

Download MySQL Community Server

http://dev.mysql.com/downloads/mysql/

在这个下载网站 选择平台是ORACL& RED HAT LIUNX 5

选择安装包 MySQL-5.6.12-1.linux_glibc2.5.x86_64.rpm-bundle 303M

在windows下 解压它  把其中含有 SERVER和CLIENT  单词的两个文件 传到linux 里去

我传到/home 目录下  然后   root用户下  rpm -ivh  mysql-service-5.6.12-.......rpm

两个包安装很顺利。

启动的时候报错了 

mysql -u root

error 1045(28000):access denied for user 'root'@'localthost'(using password:NO)

 

[root@loaclhost] /usr/bin/mysqld_safe --usr=mysql --skip-grant-tables --skip-networking&

 

开启第二个终端

 

 

[root@loaclhost] /usr/bin/mysql -u root mysql

@_@ 终于登进去了

 

mysql> update user set password=password('yourword') where user='root';

mysql> flush PRIVILEGES;

mysql> quit

 

[root@loaclhost] service mysql restart

 

[root@loaclhost] /usr/bin/mysql -uroot -p

成功进去了

 

目录

 

1、数据库目录

   /var/lib/mysql/

2、配置文件

    /usr/share/mysql   (mysql.server命令及配置文件)

3、相关命令

   /usr/bin   (mysqladmin mysqldump等命令)

4、启动脚本

   /etc/rc.d/init.d/   (启动脚本文件mysql的目录)

 

七、更改MySQL目录 

 

   MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步: 

 

   1、opt目录下建立data目录 

   cd /opt 

   mkdir mysql_rpm_5612/data/

 

   2、把MySQL服务进程停掉: 

   mysqladmin -u root -p shutdown 

 

   3、把/var/lib/mysql整个目录移到/opt/mysql_rpm_5612/data/

   mv /var/lib/mysql /opt/mysql_rpm_5612/data/

   这样就把MySQL的数据文件移动到了/home/data/mysql下 

 

   4、找到my.cnf配置文件 

   如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: 

   [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf 

 

   5、编辑MySQL的配置文件/etc/my.cnf 

   为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下: 

   vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之) 

   # The MySQL server 

    [mysqld] 

    port   = 3306 

    #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行) 

    socket  = /opt/mysql_rpm_5612/data//mysql/mysql.sock   (加上此行) 

 

   6、修改MySQL启动脚本/etc/rc.d/init.d/mysql 

   最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。 

   [root@test1 etc]# vi /etc/rc.d/init.d/mysql 

   #datadir=/var/lib/mysql    (注释此行) 

   datadir=/opt/mysql_rpm_5612/data//mysql   (加上此行) 

 

   7、重新启动MySQL服务 

   /etc/rc.d/init.d/mysql start 

   或用reboot命令重启Linux 

   如果工作正常移动就成功了,否则对照前面的7步再检查一下

 

 

然后该目录下看localhost.localdomain.err

发现: Can't start server:Bind on unix socket:Permission denied

Do you alread have another mysqld server running on socket:/opt/mysql_rpm_5612/data/mysql.sock ?

醒悟到/etc/my.cnf 写错了。

 

server mysl start 

ok

 

mysql -u  root -p

enter password:

Error 2002(HY000):can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock(2)'

 

mysql -u root -p  是客户段软件包

因此在/etc/my.cnf 增加

[client]

socket = /opt/mysql_rpm_5612/data//mysql/mysql.sock 

 

再次登录:

mysql -u  root -p

enter password:

Ok

mysql> show databases;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

非常诡异啊,明明用密码登陆进去了,怎么还提示需要密码。

参考官方的一个文档,见http://dev.mysql.com/doc/refman/5.6/en/alter-user.html。如下操作后就ok了:

 

mysql> create database yan1;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql>  SET PASSWORD = PASSWORD('123456');

Query OK, 0 rows affected (0.03 sec)

mysql> create database yan1;

Query OK, 1 row affected (0.00 sec)

也就是用mysql>  SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!大爷的,真费劲啊。

这位仁兄也遇到了相同的问题。

mysql> show databases;

、显示数据库 

   mysql> show databases; 

   +----------+ 

   | Database | 

   +----------+ 

   | mysql  | 

   | test   | 

   +----------+ 

   2 rows in set (0.04 sec) 

   Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。 

 

   2、显示数据库中的表 

   mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro ) 

   Database changed 

 

   mysql> show tables; 

   +-----------------+ 

   | Tables_in_mysql | 

   +-----------------+ 

   | columns_priv  | 

   | db       | 

   | func      | 

   | host      | 

   | tables_priv   | 

   | user      | 

   +-----------------+ 

   6 rows in set (0.01 sec) 

 

   3、显示数据表的结构: 

   describe 表名; 

 

   4、显示表中的记录: 

   select * from 表名; 

   例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。 

   Select * from user; 

 

   5、建库: 

   create database 库名; 

   例如:创建一个名字位aaa的库 

   mysql> create databases aaa; 

6、建表: 

   use 库名; 

   create table 表名 (字段设定列表); 

   例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段 

   use aaa; 

   mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date); 

   可以用describe命令察看刚建立的表结构。 

   mysql> describe name; 

 

   +-------+---------+------+-----+---------+----------------+ 

   | Field | Type  | Null | Key | Default | Extra     | 

   +-------+---------+------+-----+---------+----------------+ 

   | id  | int(3) |   | PRI | NULL  | auto_increment | 

   | xm  | char(8) | YES |   | NULL  |        | 

   | xb  | char(2) | YES |   | NULL  |        | 

   | csny | date  | YES |   | NULL  |        | 

   +-------+---------+------+-----+---------+----------------+ 

 

   7、增加记录 

   例如:增加几条相关纪录。 

   mysql> insert into name values('','张三','男','1971-10-01'); 

   mysql> insert into name values('','白云','女','1972-05-20'); 

   可用select命令来验证结果。 

   mysql> select * from name; 

   +----+------+------+------------+ 

   | id | xm  | xb  | csny    | 

   +----+------+------+------------+ 

   | 1 | 张三 | 男  | 1971-10-01 | 

   | 2 | 白云 | 女  | 1972-05-20 | 

   +----+------+------+------------+ 

 

   8、修改纪录 

   例如:将张三的出生年月改为1971-01-10 

   mysql> update name set csny='1971-01-10' where xm='张三'; 

 

   9、删除纪录 

   例如:删除张三的纪录。 

   mysql> delete from name where xm='张三'; 

 

   10、删库和删表 

   drop database 库名; 

   drop table 表名; 

 

   九、增加MySQL用户 

 

   格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 

例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令: 

 

   mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123"; 

例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。 

 

  例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。 

 

   mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123"; 

 

   用新增的用户如果登录不了MySQL,在登录时用如下命令: 

 

   mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址) 

 

   十、备份与恢复 

 

   1、备份 

 

   例如:将上例创建的aaa库备份到文件back_aaa中 

 

   [root@test1 root]# cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容) 

   [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa 

 

   2、恢复 

 

   [root@test mysql]# mysql -u root -p ccc

 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn