`
dalezhu
  • 浏览: 203730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RedHat4下安装mysql5 (转)

    博客分类:
  • DB
阅读更多
第一步:卸载mysql
说明:mysql在linux的环境下有两种安装方式,一种是rpm方式,一种是二进制原文件方式
在二进制源文件方式下,直接删除文件就可以,在rpm方式下使用如下方式卸载mysql。
1. 检验用户是否安装了使用rpm方式安装了mysql,命令为:rpm -qa | grep mysql
例如:mysql-4.1.10a-2.RHEL4.1

2. 如果用户安装了mysql,则全部卸载,在卸载的过程可能存在相互关联的包,需要强制卸载。加载关键字?nodeps
例如:rpm ?e mysql-4.1.10a-2.RHEL4.1 --nodeps

第二步:安装mysql
方式一:二进制源文件安装
0. 查询是否已经有 mysql 的账号:
[root@test root]# grep mysql /etc/passwd
# 如果没有 mysql 出现的话,那么请建立一个名为 mysql 的账号!
# 这个是要给 MySQL 的 Process 使用的!为了安全性,请务必建立!
# 如果之前已经建立过了,那么底下这一步建置的工作就可以跳过,
# 直接到 1. 解压缩与建立连结 去安装?!
 
[root@test root]# groupadd -g 315 mysql
# 因为我刚好没有 315 这个 GID ,而 mysql 是系统使用的账号,我希望他在 500 以内,
# 因此就选择 315 做为 mysql 的 gid ?!你当然可以变更这个数字,
# 使用小于 500 的 GID 做为系统的账号之用只是惯用的习惯而已啦! ^_^
 
[root@test root]# useradd -u 315 -g mysql -d /usr/local/mysql/data -M mysql
# 我使用 315 做为 mysql 这个账号(与群组同名!)的 UID 啦!
# 并且建立他的家目录在 /usr/local/mysql/data 里面!
 
1. 解压缩与建立连结:
[root@test root]# cd /usr/local (因为已经是 binary 的套件,不用 make)
[root@test local]# tar -zxvf /root/mysql-max-5.0.27-linux-i686-icc-glibc23.tar.gz
...(讯息略过)....
# 最后会产生一个目录: mysql-max-5.0.27-linux-i686-icc-glibc23.tar.gz
 
2. [root@test local]# ln -s mysql-max-5.0.27-linux-i686-icc-glibc23.tar.gz mysql
# 通常习惯将 MySQL 安装在 /usr/local/mysql 当中!但为了未来升级版本的确认,
# 官方网站上面建议使用连结的方式来进行 MySQL 的使用!
 
3. 档案权限修正:
[root@test local]# mkdir -p /var/lib/mysql
[root@test local]# chown -R mysql:mysql /var/lib/mysql
[root@test local]# chown -R root:mysql /usr/local/mysql-5.0.27*
[root@test local]# chown -R mysql:mysql /usr/local/m
ysql/data
# 修改成较为安全,且数据库所属人为 mysql 喔!特别留意啦!
 
4. 建立数据库:
[root@test local]# cd mysql
[root@test mysql]# ./scripts/mysql_install_db
[root@test mysql]# chown -R mysql:mysql /var/lib/mysql
[root@test mysql]# chown -R mysql:mysql /usr/local/mysql/data
# 这个步骤会在 /usr/local/mysql/data 里面建立好 MySQL 的数据库!
# 由于 /usr/local/mysql/data 是 MySQL 的数据库目录,所以很重要喔!请多加备份!
# 不过,在新版的 3.23.57 这个版本当中,数据库竟然移到 /var/lib/mysql 去了!
# 还真是有点奇怪?!另外,根据诸多网友的回报,发现在建立数据库之后,
# 还需要重新设定一下数据库的所属群组与拥有者喔!
 
5. 启动测试:
[root@test mysql]# /usr/local/mysql/bin/safe_mysqld --user=mysql &
Starting mysqld daemon with databases from /usr/local/mysql/data
# 注意:这个时候 mysql 会建立一个 socket file 在 /var/lib/mysql/mysql.sock 喔!
# 未来我们在使用 MySQL 的各种指令功能时,都需要使用到这个 socket file,
# 但是 MySQL 偏偏预设的 socket file 是在 /tmp 底下,怎么办?!真讨厌,
# 我们可以透过这个简单的动作来欺骗我们的 MySQL 喔!
[root@test mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/
# 如果还是找不到 mysql.sock 时,请使用 find / -name mysql.sock
# 来找出这个档案的绝对路径吧!
 
[root@test mysql]# netstat -tl | grep mysql
tcp 0 0 *:mysql *:* LISTEN
[root@test mysql]# ps -aux | grep mysql
mysql 6394 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/
mysql 6395 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/
mysql 6396 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/
root 6422 0.0 1.1 2408 732 pts/3 S 16:20 0:00 grep mysql
# 呵呵!这样就应该是搞定了! MySQL 已经在监听要求?!而且所有人为 mysql !
 
6. 开机后立即启动!
[root@test mysql]# vi /etc/rc.d/rc.local
# 将底下这一行加入这个档案的最后面一行喔!
cd /usr/local/mysql; /usr/local/mysql/bin/safe_mysqld --user=mysql &
# 这样一来,每次开机就可以自动的启动 MySQL ?!
# 注:由于很多网友回复之问题中发现,如果没有加上 cd /usr/local/mysql 时,
# 会导致无法自动于开机的时候启动,因此,请大家记得加上这个动作呢!
 
7. 进阶设定内容:
# 由于我们 MySQL 放置的地点在 /usr/local/mysql 内,这个目录并不在 PATH 当中!
# 且 man page 亦不在 MANPATH 里面,所以,我们要手动的帮他加入?!
 
[root@test mysql]# vi /etc/profile
# 大约在 33 行的地方,而且每个 distribution 设定的地方都不太相同!
# 请找到 export PATH ... 那一行,以 Mandrake 9.0 来说,大概在 33 行左右,
# 新加入一行:
PATH="$PATH":/usr/local/mysql/bin
export PATH ....(略)....
 
[root@test mysql]# vi /etc/man.config( 有的 distribution 为 /etc/man.conf )
# 可以在这个档案的任何地方加入底下这一行:
MANPATH /usr/local/mysql/man
# 就可以具有 man page 的能力了!
 
8. 建立 MySQL 的 root 账号密码!
[root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root password 'your.password'
# 请建立密码!为了安全起见!否则你的 MySQL 数据库,将预设所有人都可以登入喔!
# 注意,如果执行上面的指令时,竟然出现如下的错误:
ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
# 这表示 mysql 找不到 mysql.sock 这个档案!我们上面不是提到 mysql.sock 的
# 绝对路径吗?假设是 /var/lib/mysql/mysql.sock 好了,那么我们可以:
[root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root \
> -S /var/lib/mysql/mysql.sock password 'your.passwd'
# 当然也可以进行档案的连结阿! ln -s /var/lib/mysql/mysql.sock /tmp
 
[root@test mysql]# /usr/local/mysql/bin/mysql -u root -p \
> [-S /var/lib/mysql/mysql.sock] # 后面 [] 的内容不一定需要!且 [] 不要打!
Enter password: <==这里输入你刚刚建立的那个密码喔!
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 3.23.57
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> exit
Bye
方式二:rpm文件安装
在rpm文件下rpm ?i *.rpm


因爲下面這些包依賴于 mysql 這個包
你刪除了 mysql 其他包就可能不能用了
加上 --nodeps
rpm -e --nodeps mysql
或者用yum刪除 它會自動解決依賴
yum remove mysql


BUG:
Starting MySQLCouldn't find MySQL manager or server [FAILED]
关键字: linux
http://bugs.mysql.com/bug.php?id=23524
解决方法:mv /etc/my.cnf /etc/my.cnf.old
======================================================
========================================================
=======================
Linuxmysql的安装步骤(非rpm安装)

1 下载mysql-standard-5.0.27-linux-i686-glibc23.tar.gz

2 解压到安装目录: tar -zxvf /edass/db/mysql-standard-5.0.27-linux-i686-glibc23.tar.gz

3   mysql-standard-5.0.27-linux-i686-glibc23链接到mysql : ln –s mysql-standard-5.0.27-linux-i686-glibc23 mysql

4 mysql建立群和用户(linux用户)

shell> groupadd mysql

shell> useradd -g mysql mysql

5 初始化数据库:scripts/mysql_install_db --user=mysql   (mysql_install_db

以缺省权限创建MySQL授权表。这通常仅被执行一次。就是在系统上第一次安装MySQL时。

)

6 启动mysql数据库:bin/mysqld_safe --user=mysql &

7 root进入mysql命令行模式:./mysql -u root -p

//   8 root分配密码:mysql>grant all privilages on *.* to root@localhost

 // identified by 'password' with grant option

9授予 root用户可以从任何主机发起访问:mysql>grant all privilages on *.* to root@"%" identified by 'password' with grant option;"%"是通配符,授予 admin 用户可以从任何主机发起访问,password 是为 admin 用户设置的密码。一般来讲,Root 应只用于数据库本机上登录 MySQL,我们可以增加一个拥有超级管理权限的用户 'admin' 来实现远程的维护。

Mysql启动命令:./bin/mysqld_safe –-user=mysql &

Mysql关闭命令:./bin/mysqladmin –uroot –phkgt123 shutdown

Mysql数据脚本导出(整个数据库)./bin/mysqldump –-opt–uroot –phkgt123 test > /edass/db/dgflog.sql

Mysql数据脚本导入(整个数据库)./bin/mysql –uroot –phkgt123 dgflog < /edass/db/dgflog.sql

Mysql的端口修改 :vi etc/my.cnf  port=3300 #修改成你自己想要的端口

设置自动启动/etc/rc.d/rc.local 添加  cd /edass/auditdb/mysql; bin/mysqld_safe --socket=/tmp/auditdb.sock --port=4406

--user=mysql &

修改mysql密码:
  mysqladmin -u
用户名 -p旧密码 password 新密码
 
或进入mysql命令行SET PASSWORD FOR root=PASSWORD("root");

10 mysql命令行常用命令:

第一招、mysql服务的启动和停止

net stop mysql

net start mysql

 

第二招、登陆mysql

语法如下: mysql -u用户名 -p用户密码

键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:

mysql>

注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

 

第三招、增加新用户

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

如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:

grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";

如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"

如果你不想user1有密码,可以再打一个命令将密码去掉。

grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

 

第四招: 操作数据库

登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。

1、 显示数据库列表。

show databases;

缺省有两个数据库:mysqltest mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

2、 显示库中的数据表:

use mysql;

show tables;

3、 显示数据表的结构:

describe 表名;

4、 建库与删库:

create database 库名;

drop database 库名;

5、 建表:

use 库名;

create table 表名(字段列表);

drop table 表名;

6、 清空表中记录:

delete from 表名;

7、 显示表中的记录:

select * from 表名;

 

第五招、导出和导入数据

1. 导出数据:

mysqldump --opt test > mysql.test

即将数据库test数据库导出到mysql.test文件,后者是一个文本文件

如:mysqldump -u root -p123456 --databases dbname > mysql.dbname

就是把数据库dbname导出到文件mysql.dbname中。

2. 导入数据:

mysqlimport -u root -p123456 < mysql.dbname

不用解释了吧。

3. 将文本数据导入数据库:

文本数据的字段数据之间用tab键隔开。

use test;

load data local infile "文件名" into table 表名;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics