如何在linux下安装mysql数据库并配置

如何在linux下安装mysql数据库并配置,第1张

在linux下安装mysql数据库并配置的流程比较繁琐,需要耐心调试,具体方法和步骤如下:

1.查找以前是否安装有mysql,使用下面命令

rpm -qa|grep -i mysql

如果显示有如下包则说明已安装mysql

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

2.如果已安装,则需要删除已安装的数据库,使用以下命令来删除数据库

删除命令:rpm -e --nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

删除老版本mysql的开发头文件和库

命令:rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

3.下载mysql的rpm包

可以通过wget下载具体的地址因为不能用链接请大家去官网去找

(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL服务器

(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客户端

(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql开发依赖包。

下载后放到Liunx服务器中。

4.安装MySQL Server的rpm包

rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm

安装完成后会生成root用户的随机密码,请使用“cat /root/.mysql_secret”或类似命令进行查看。

5.安装MySQL客户端

rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm

6.安装MySQL开发依赖包

rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm

7.启动msyql

安装完成后mysql是没有启动的,运行mysql命令会提示如下错误:

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

可使用如下命令启动MySQL:

service mysql start

或者使用如下命令:

/etc/init.d/mysql start

可使用SET PASSWORD命令修改root用户的密码,参考如下:SET PASSWORD = PASSWORD('root123456')

8.登录MySQL

使用mysql命令登录MySQL服务器,运行MySQL的命令时,会提示需要设置root用户密码。

9.设置开机自启动

/etc/init.d/mysql start

设置完成后重启系统,使用natstat –nat命令可看到MySQL的3306端口。

10.至此已经安装好了mysql数据库,当然现在我们的数据库还不支持远程连接,远程连接会出现以下代码:1130,ERROR 1130: Host 192.168.0.10 is not allowed to connect to this MySQL server,可以通过以下以下来解决。

11.改表法:在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为'%'。

mysql>

mysql>use mysql

mysql>select 'host' from user where user='root

12.到此为止,mysql数据库在linux中安装完毕。

在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了。一般而言

,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管

理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程

序等,客户端程序中又是利用 ODBC 或者 OLE DB 等连接 SQL Server。下面,我们将就这两

一、客户端工具连接失败

在使用 SQL Server 自带的客户端工具(以企业管理器为例)连接 SQL Server时,

1、SQL Server 不存在或访问被拒绝

ConnectionOpen (Connect())

2、用户'sa'登录失败。原因:未与信任 SQL Server 连接相关联。

3、超时已过期。

下面我们依次介绍如何来解决这三个最常见的连接错误。

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比

较多,需要检查的方面也比较多。一般说来,有以下几种可能性:

1、SQL Server名称或IP地址拼写有误;

2、服务器端网络配置有误;

3、客户端网络配置有误。

要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因。

首先,检查网络物理连接:

ping <服务器IP地址>

或者

ping <服务器名称>

如果 ping <服务器IP地址> 失败,说明物理连接有问题,这时候要检查硬件设备

,如网卡、HUB、路由器等。还有一种可能是由于客户端和服务器之间安装有防火墙软件造成

的,比如 ISA Server。防火墙软件可能会屏蔽对 ping、telnet 等的响应,因此在检查连接

问题的时候,我们要先把防火墙软件暂时关闭,或者打开所有被封闭的端口。

如果ping <服务器IP地址> 成功而 ping <服务器名称> 失败,则说明名字解析

有问题,这时候要检查 DNS 服务是否正常。有时候客户端和服务器不在同一个局域网里面,

这时候很可能无法直接使用服务器名称来标识该服务器,这时候我们可以使用HOSTS文件来进

1、使用记事本打开HOSTS文件(一般情况下位于C:WINNTsystem32driversetc)

2、添加一条IP地址与服务器名称的对应记录,如:

172.168.10.24 myserver

也可以在 SQL Server 的客户端网络实用工具里面进行配置,后面会有详细说明。

其次,使用 telnet 命令检查SQL Server服务器工作状态:

telnet <服务器IP地址> 1433

如果命令执行成功,可以看到屏幕一闪之后光标在左上角不停闪动,这说明 SQL

Server 服务器工作正常,并且正在监听1433端口的 TCP/IP 连接;如果命令返回"无法打开

连接"的错误信息,则说明服务器端没有启动 SQL Server 服务,也可能服务器端没启用

TCP/IP 协议,或者服务器端没有在 SQL Server 默认的端口1433上监听。

接着,我们要到服务器上检查服务器端的网络配置,检查是否启用了命名管道,是否

启用了 TCP/IP 协议等等。我们可以利用 SQL Server 自带的服务器网络使用工具来进行检查

点击:程序 -> Microsoft SQL Server -> 服务器网络使用工具,打开该工具后看

到的画面如下图所示:

从这里我们可以看到服务器启用了哪些协议。一般而言,我们启用命名管道以及

点中 TCP/IP 协议,选择"属性",我们可以来检查 SQK Server 服务默认端口的设置

,如下图所示:

一般而言,我们使用 SQL Server 默认的1433端口。如果选中"隐藏服务器",则意味

着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接。

检查完了服务器端的网络配置,接下来我们要到客户端检查客户端的网络配置。我们

同样可以利用 SQL Server 自带的客户端网络使用工具来进行检查,所不同的是这次是在客户

点击:程序 -> Microsoft SQL Server -> 客户端网络使用工具, 打开该工具后

看到的画面如下图所示:

从这里我们可以看到客户端启用了哪些协议。一般而言,我们同样需要启用命名管道

点击 TCP/IP 协议,选择"属性",可以检查客户端默认连接端口的设置,如下图所示

该端口必须与服务器一致。

单击"别名"选项卡,还可以为服务器配置别名。服务器的别名是用来连接的名称,连

接参数中的服务器是真正的服务器名称,两者可以相同或不同。如下图中,我们可以使用

myserver来代替真正的服务器名称sql2kcn-02,并且使用网络库 Named Pipes。别名的设置与

使用HOSTS文件有相似之处。

通过以上几个方面的检查,错误 1 发生的原因基本上可以被排除。下面我们再详细

当用户尝试在查询分析器里面使用sa来连接SQL Server,或者在企业管理器里面使用

sa来新建一个SQL Server注册时,经常会遇到如图 2 所示的错误信息。该错误产生的原因是

由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐

户(如 sa )进行连接。解决方法如下所示:

1、 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL

2、 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再

3、 在"身份验证"下,选择"SQL Server和 Windows "。

4、 重新启动SQL Server服务。

在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL

Server 失败,那么我们将遇到一个两难的境地:首先,服务器只允许了 Windows 的身份验

证;其次,即使使用了 Windows 身份验证仍然无法连接上服务器。这种情形被形象地称之为

"自己把自己锁在了门外",因为无论用何种方式,用户均无法使用进行连接。实际上,我们可

以通过修改一个注册表键值来将身份验证方式改为 SQL Server 和 Windows 混合验证,步骤

1、点击"开始"-"运行",输入regedit,回车进入注册表编辑器;

2、依次展开注册表项,浏览到以下注册表键:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer]

3、在屏幕右方找到名称"LoginMode",双击编辑双字节值;

4、将原值从1改为2,点击"确定";

5、关闭注册表编辑器;

6、重新启动SQL Server服务。

此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使

用Windows身份验证模式来连接SQL Server。这是因为在 SQL Server 中有两个缺省的登录帐

户:BUILTINAdministrators 以及 <机器名>Administrator 被删除。要恢复这两个帐户

1、打开企业管理器,展开服务器组,然后展开服务器;

2、展开"安全性",右击"登录",然后单击"新建登录";

3、在"名称"框中,输入 BUILTINAdministrators;

4、在"服务器角色"选项卡中,选择"System Administrators" ;

5、点击"确定"退出;

6、使用同样方法添加 <机器名>Administrator 登录。

以下注册表键

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode

的值决定了SQL Server将采取何种身份验证模式。该值为1,表示使用Windows 身份

验证模式;该值为2,表示使用混合模式(Windows 身份验证和 SQL Server 身份验证)。

看完如何解决前两个错误的方法之后,让我们来看一下如图 3 所示的第三个错误。

如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连

接,不过是由于连接的时间大于允许的时间而导致出错。这种情况一般会发生在当用户在

Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,

有可能会导致以上的超时错误。有些情况下,由于局域网的网络问题,也会导致这样的错误。

要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器

注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业

1、在企业管理器中,选择菜单上的"工具",再选择"选项";

2、在d出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;

3、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 20

查询分析器中也可以在同样位置进行设置。

二、应用程序连接失败

以上的三种错误信息都是发生在 SQL Server 自带的客户端工具中,在应用程序中我

Microsoft OLE DB Provider for SQL Server (0x80004005)

[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found.

Microsoft OLE DB Provider for SQL Server (0x80004005)

用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联。

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'.

[Microsoft][ODBC SQL Server Driver]超时已过期.

首先,让我们来详细看以下的示意图来了解一下使用 ODBC 和使用 OLE DB 连接

SQL Server 有什么不同之处。

从上图中,我们可以看出在实际使用中,应用程序创建和使用各种 ADO 对象,ADO

对象框架调用享用的 OLE DB 提供者。为了访问 SQL Server 数据库,OLE DB 提供了两种不

同的方法:用于 SQL Server 的 OLE DB 提供者以及用于 ODBC 的 OLE DB 提供者。这两种不

同的方法对应于两种不同的连接字符串,标准的连接字符串写法如下所示:

1、使用用于 SQL Server 的 OLE DB 提供者:

使用 SQL Server 身份验证:

oConn.Open "Provider=sqloledb" &_

"Data Source=myServerName" &_

"Initial Catalog=myDatabaseName" &_

"User Id=myUsername" &_

"Password=myPassword"

使用 Windows 身份验证(信任连接):

oConn.Open "Provider=sqloledb" &_

"Data Source=myServerName" &_

"Initial Catalog=myDatabaseName" &_

"Integrated Security=SSPI"

2、使用用于 ODBC 的 OLE DB 提供者(不使用 ODBC 数据源):

使用 SQL Server 身份验证:

oConn.Open "Driver={SQL Server}" &_

"Server=MyServerName" &_

"Database=myDatabaseName" &_

"Uid=myUsername" &_

"Pwd=myPassword"

使用 Windows 身份验证(信任连接):

oConn.Open "Driver={SQL Server}" &_

"Server=MyServerName" &_

"Database=myDatabaseName" &_

"Trusted_Connection=yes"

3、使用用于 ODBC 的 OLE DB 提供者(使用 ODBC 数据源):

oConn.Open "DSN=mySystemDSN" &_

"Uid=myUsername" &_

"Pwd=myPassword"

如果遇到连接失败的情况,我们只要按照一中所示的方法,结合程序中的连接字符串

进行检查,基本都能得到解决。另外,还有以下几个要注意的地方:

1、配置 ODBC 数据源时,点击"客户端"配置选项可以让我们指定连接使用的网络库

、端口号等属性,如下图所示:

2、如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置

<%

Set Conn = Server.CreateObject("ADODB.Connection")

DSNtest="DRIVER={SQL Server}SERVER=ServerNameUID=USERPWD=pass

Conn. Properties("Connect Timeout") = 15 '以秒为单位

Conn.open DSNtest

%>

3、如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置

Dim cn As New ADODB.Connection

Dim rs As ADODB.Recordset

. . .

cmd1 = txtQuery.Text

Set rs = New ADODB.Recordset

rs.Properties("Command Time Out") = 300

'同样以秒为单位,如果设置为 0 表示无限制

rs.Open cmd1, cn

rs.MoveFirst

. . .

三、小结

本文针对大部分用户在使用 SQL Server 过程中常见的连接失败的错误,重点讨论了

在使用 SQL Server 客户端工具以及用户开发的应用程序两种情况下,如何诊断并解决连接失

败的错误。看过本文以后,相信每一个读者都会对 SQL Server 的连接工作原理、身份验证方

式以及应用程序开发等有一个较为全面而深入的连接。本文中所有的测试或者示例均在

Windows 2000 Advanced Server + SQL Server 2000 企业版上通过

1. 安装MySQL数据库

先从MySQL官网下载MySQL,然后进入所下载的安装文件所在目录,运行如下命令进行安装,其中MySQL-server-community-5.1.56-1.rhel5.i386.rpm为刚刚下载的MySQL数据库服务器的rpm包,然后使用/etc/rc.d/init.d/mysqlrestart命令重启MySQL服务:

[root@localhost ~]# rpm -ivh MySQL-server-community-5.1.56-1.rhel5.i386.rpm

[root@localhost ~]# /etc/rc.d/init.d/mysql restart

Shutting down MySQL..[确定]

Starting MySQL..[确定]

2. 配置MySQL数据库字符集

备注:配置MySQL数据库字符集的目的是方便的使用数据库,无需在每次连接的时候都要临时设置数据库字符集的,个人不建议采用这种方法,真正的工程项目都应该在连接数据库时临时设置数据库字符集,如此才便于系统的移植,而且又不会影响数据库服务器中的其他数据库的使用!

安装完成之后,需要配置MySQL的字符集配置,首先需要查找MySQL的配置文件的位置,由于MySQL的配置文件名是以.cnf结尾的,因此可用如下命令进行查找:

[root@localhost ~]# find / -iname '*.cnf' -print

/usr/share/mysql/my-large.cnf

/usr/share/mysql/my-medium.cnf

/usr/share/mysql/my-innodb-heavy-4G.cnf

/usr/share/mysql/my-huge.cnf

/usr/share/mysql/my-small.cnf

/usr/share/doc/MySQL-server-community-5.1.56/my-large.cnf

/usr/share/doc/MySQL-server-community-5.1.56/my-medium.cnf

/usr/share/doc/MySQL-server-community-5.1.56/my-innodb-heavy-4G.cnf

/usr/share/doc/MySQL-server-community-5.1.56/my-huge.cnf

/usr/share/doc/MySQL-server-community-5.1.56/my-small.cnf

/etc/pki/tls/openssl.cnf

输入完命令“find / -iname '*.cnf'-print”回车后,屏幕便显示搜索到的MySQL配置文件,然后拷贝my-large.cnf、my-medium.cnf 、my-innodb-heavy-4G.cnf 、my-huge.cnf、my-small.cnf中任意的一个到/etc目录下,并命名为my.cnf,其命令如下所示:

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

[root@localhost ~]# vi /etc/my.cnf

然后,使用vi编辑器修改/etc/my.cnf文件,在[client]下添加: “default-character-set=gb2312”;在[mysqld]下添加:“default-character-set=gb2312”。如下所示:

# The following options will be passed to all MySQL clients

[client]

default-character-set=gb2312

#password = your_password

port= 3306

socket = /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

default-character-set=gb2312

port= 3306

socket = /var/lib/mysql/mysql.sock

skip-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

按一下Esc键,输入“:wq”后回车保存配置文件,输入“/etc/rc.d/init.d/mysqlrestart”重启MySQL服务,如下所示:

[root@localhost ~]# /etc/rc.d/init.d/mysql restart

Shutting down MySQL..[确定]

Starting MySQL..[确定]

最后,我们来验证MySQL服务器配置是否成功,首先登录MySQL,输入“mysql –uroot -p”回车,系统提示输入密码,登录成功后进入MySQL命令模式,如下所示:

[root@localhost ~]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with or \g.

Your MySQL connection id is 2

Server version: 5.1.56-community-log MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

在MySQL命令模式下分别输入“show variables like'collation_%'”、“show variables like 'character_set_%'”回车后显示字符集设置,如下所示:

mysql>show variables like 'collation_%'

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

| Variable_name| Value |

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

| collation_connection | gb2312_chinese_ci |

| collation_database | gb2312_chinese_ci |

| collation_server | gb2312_chinese_ci |

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

3 rows in set (0.05 sec)

mysql>show variables like 'character_set_%'

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

| Variable_name| Value |

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

| character_set_client | gb2312 |

| character_set_connection | gb2312 |

| character_set_database | gb2312 |

| character_set_filesystem | binary |

| character_set_results| gb2312 |

| character_set_server | gb2312 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

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

8 rows in set (0.00 sec)

mysql>

根据以上查询结果可知我们设置的MySQL数据库配置信息已经生效,至此完成MySQL的服务器的安装与配置。

3.关于MySQL数据库的一些注意事项

3.1 远程连接mysql速度慢

解决方法:

在MySQL服务器的配置(/etc/my.cnf)中增加一个如下配置后速度飞快。

[mysqld]

skip-name-resolve

备注:这样就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

3.2 重启数据库后,发现无需密码(或者任何密码)即可以连接

解决方法:

检查你的MySQL配置文件(/etc/my.cnf)中是不是多了一条语句:“skip-grant-tables”,删除(注释)该语句,重新配置MySQL密码,再次重启MySQL服务即可!

备注:若使用skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用 mysqladmin flush-privileges或mysqladmin reload来开启访问控制默认情况是show databases语句对所有用户开放,如果mysql服务器没有开远程帐户,就在/etc/my.cnf里面加上skip-grant-tables。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9932182.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存