怎样在UNIX系统下安装MySQL

怎样在UNIX系统下安装MySQL,第1张

# cd /usr/src

# tar -zvxf mysql-3.22.25-pc-linux-gnu-i686.tar.gz (产生 mysql-3.22.25-pc-linux-gnu-i686目录)

# cd mysql-3.22.25-pc-linux-gnu-i686

# ./configure --prefix=/usr/local/mysql (其中参数设定目的安装路径)

# make

# make install

注意在运行configure时,设定MySQL的安装目的路径为/usr/local/mysql,该路径在后继安装过程中还要使用。然后,建立最初的数据库:

# scripts/mysql_install_db

该命令将在 /usr/local/mysql/var/ 下建立两个数据库:mysql和test,其中前者是MySQL的权限管理数据库,后者是让你做练习用的。注意:如果你在以前曾经安装果MySQL,则初始数据库已经存在,不需要再重新安装。

最后,启动MySQL :

# cd /usr/local/mysql/bin

# ./safe_mysqld &

如果你希望在机器启动的时候自动运行数据库服务,可以将上面的启动命令加入到/etc/rc.d/rc.local文件中。

现在,MySQL 已经运行起来了并等待你的数据处理命令!但是,一定要小心:你还没有为你的root管理员设置一个密码,任何人都可以随心所欲地修改你的数据库(包括最为重要的权限库)!不相信的话,作作以下练习(假设我们的当前目录都是/usr/local/mysql/bin):

试试用任意用户登录,并运行:

$ ./mysql -u root

立即可以进入"mysql>"客户端软件提示符并进行任何数据处理 *** 作而不需要任何口令;这说明,MySQL的管理员"root"账号与你的Unix账号所用的口令可以是不一样的。为了给root账号加口令,执行:

# ./mysqladmin -u root password '新口令'

再次以一般用户身执行:

$ ./mysql -u root

则系统会提示输入密码,密码不正确则拒绝访问。实际上,即使你是root用户,如果不明确地指明使用密码,系统也是照样拒绝:

# ./mysql -u root

# ./mysql 系统响应:

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

只有使用-p参数,明确说明你要使用密码,系统才会提示你输入密码,并在输入密码正确时方可进入:

# ./mysql -u root -p

password:******** (输入口令)

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

Your MySQL connection id is 33 to server version: 3.22.25

Type 'help' for help.

Mysql>

键入exit回到shell。

脚本mysql.server(位于`share/mysql'目录中)用于启动或停止MySQL服务器:

shell>mysql.server start

shell>mysql.server stop

该脚本实际上通过执行safe_mysqld启动服务器。停止服务器也可以通过管理程序实现:

mysqladmin shutdown

也可通过将下述命令加入`/etc/rc.local'文件,在系统启动时自动启动MySQL:

/bin/sh -c 'cd /usr/local/mysql ./bin/safe_mysqld &'

MySql密码修改_Mysql密码破解

首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,

所以一般用户无法更改密码,除非请求管理员。

方法一

使用phpmyadmin,这是最简单的了,修改mysql库的user表,

不过别忘了使用PASSWORD函数。

方法二

使用mysqladmin,这是前面声明的一个特例。

mysqladmin -u root -p password mypasswd

输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。

把命令里的root改为你的用户名,你就可以改你自己的密码了。

当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,

那么这种方法就是无效的。

而且mysqladmin无法把密码清空。

下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

方法三

mysql>Insert INTO mysql.user (Host,User,Password)

VALUES(’%',’jeffrey’,PASSWORD(’biscuit’))

mysql>FLUSH PRIVILEGES

确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。

在《mysql中文参考手册》里有这个例子,所以我也就写出来了。

注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。

方法四

和方法三一样,只是使用了REPLACE语句

mysql>REPLACE INTO mysql.user (Host,User,Password)

VALUES(’%',’jeffrey’,PASSWORD(’biscuit’))

mysql>FLUSH PRIVILEGES

方法五

使用SET PASSWORD语句,

mysql>SET PASSWORD FOR jeffrey@”%” = PASSWORD(’biscuit’)

拟也必须使用PASSWORD()函数,

但是不需要使用FLUSH PRIVILEGES。

方法六

使用GRANT … IDENTIFIED BY语句

mysql>GRANT USAGE ON *.* TO jeffrey@”%” IDENTIFIED BY ‘biscuit’

这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。

注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。

MySQL 忘记口令的解决办法

如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。

启动 MySQL :bin/safe_mysqld –skip-grant-tables &

就可以不需要密码就进入 MySQL 了。

然后就是

>use mysql

>update user set password=password(”new_pass”) where user=”root”

>flush privileges

重新杀 MySQL ,用正常方法启动 MySQL 。

mysql密码清空

Windows:

1.用系统管理员登陆系统。

2.停止MySQL的服务。

3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:mysql,进入C:mysqlbin

4.跳过权限检查启动MySQL,

c:mysqlbin>mysqld-nt –skip-grant-tables

5.重新打开一个窗口,进入c:mysqlbin目录,设置root的新密码

c:mysqlbin>mysqladmin -u root flush-privileges password “newpassword”

c:mysqlbin>mysqladmin -u root -p shutdown

将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。

6.停止MySQL Server,用正常模式启动Mysql

7.你可以用新的密码链接到Mysql了。

Unix&Linux:

1.用root或者运行mysqld的用户登录系统;

2.利用kill命令结束掉mysqld的进程;

3.使用–skip-grant-tables参数启动MySQL Server

shell>mysqld_safe –skip-grant-tables &

4.为root@localhost设置新密码

shell>mysqladmin -u root flush-privileges password “newpassword”

5.重启MySQL Server

mysql修改密码

mysql修改,可在mysql命令行执行如下:

mysql -u root mysql

mysql>Update user SET password=PASSWORD(”new password”) Where user=’name’

mysql>FLUSH PRIVILEGES

mysql>QUIT

教你如何将MySQL数据库的密码恢复

因为MySQL密码存储于数据库mysql中的user表中,所以只需要将我windows 2003下的MySQL中的user表拷贝过来覆盖掉就行了。

但是在一些特殊情况下,我们不想使用这个 root 用户来使用。你比如主机提供商,他们在提供数据库的时候就有肯能不想购买者使用 root 用户来登录他们提供的数据库服务器,而是向这些购买者分配一个随机的用户。他们是怎样做到的呢?这里我们来向大家说说如何以一个普通的用户来使用MySQL数据库。 MySQL服务器mysqld能被任何用户启动并运行。为了将mysqld改由Unix用户user_name来运行,你必须做下列事情:

如果它正在运行,停止服务器(使用mysqladmin shutdown)。

改变数据库目录和文件以便user_name有权限读和写文件(你可能需要作为Unix的root用户才能做到):

shell>chown -R user_name /path/to/mysql/datadir

如果在MySQL数据目录中的目录或文件是符号链接,你也将需要顺着那些链接并改变他们指向的目录和文件。chown -R不能跟随符号链接。

以user_name用户启动服务器,或如果你正在使用MySQL 3.22或以后版本,以Unix root用户启动mysqld并使用--user=user_name选项,mysqld将在接受任何连接之前切换到以Unix user_name用户运行。

如果在系统被重新启动时,你使用mysql.server脚本启动mysqld,你应该编辑mysql.server用su以用户user_name运行mysqld,或使用--user选项调用mysqld。(不改变safe_mysqld是必要的。) 现在,你的mysqld进程应该正在作为Unix用户user_name运行,并运行完好。尽管有一件事情没有变化:权限表的内容。缺省 地(就在运行了脚本mysql_install_db安装的权限表后),MySQL用户root是唯一有存取mysql数据库或创建或抛弃数据库权限的用户。除非你改变了那些权限,否则他们仍然保持。当你作为一个Unix用户而不是root登录时,这不应该阻止你作为MySQL root用户来存取MySQL只要为客户程序指定-u root的选项。

注意通过在命令行上提供-u root,作为root存取MySQL,与作为Unix root用户或其他Unix用户运行MySQL没有关系。MySQL的存取权限和用户名与Unix用户名字是完全分开的。唯一与Unix用户名有关的是,如果当你调用一个客户程序时,你不提供一个-u选项,客户将试图使用你的Unix登录名作为你的MySQL用户名进行连接。

如果你的Unix机器本身不安全,你可能应该至少在存取表中为MySQL root用户放上一个口令。


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

原文地址: http://outofmemory.cn/zaji/5908967.html

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

发表评论

登录后才能评论

评论列表(0条)

保存