linux下yum安装 mysql 及详细配置及默认目录修改
一、[root@sample ~]# yum -y install mysql-server ← 安装MySQL
.....略
Installed: mysql-server.i386 0:4.1.20-1.RHEL4.1
Dependency Installed: mysql.i386 0:4.1.20-1.RHEL4.1 perl-DBD-MySQL.i386 0:2.9004-3.1 perl-DBI.i386 0:1.40-8
Complete!
二、配置
[root@sample ~]# vi /etc/my.cnf ← 编辑MySQL的配置文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1 ← 找到这一行,在这一行的下面添加新的规则,让MySQL的默认编码为UTF-8
default-character-set = gbk ← 添加这一行
然后在配置文件的文尾填加如下语句:
[mysql]
default-character-set = gbk
三、启动MySQL服务
[root@sample ~]# chkconfig mysqld on ← 设置MySQL服务随系统启动自启动
如果上述命令失败,显示bash: chkconfig: command not found,见本文最下面解决方法
[root@sample ~]# chkconfig --list mysqld ← 确认MySQL自启动
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 如果2--5为on的状态就OK
[root@sample ~]# /etc/rc.d/init.d/mysqld start ← 启动MySQL服务
启动mysql????????????????????????????????????????????? [确定]
备注:如果这一部执行失败有可能是/var/lib/mysql 没有数据库文件,会报【 Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist】,这是需要执行mysql_install_db命令就OK了。
四、MySQL的root用户设置密码
MySQL在刚刚被安装的时候,它的root用户是没有被设置密码的。首先来设置MySQL的root密码。
[root@sample ~]# mysql -u root ← 用root用户登录MySQL服务器
:如果出现错误Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2),
:则查看mysql是否启动 /etc/rc.d/init.d/mysqld status, 没有启动则/etc/rc.d/init.d/mysqld start
mysql> select user,host,password from mysql.user; ← 查看用户信息
mysql>set password for root@localhost=password('在这里填入root密码'); ← 设置root密码
mysql>set password for root@域名=password('在这里填入root密码');
mysql> delete from mysql.user where user=''; ← 删除匿名用户
mysql> exit ← 退出MySQL服务器【测试设置的密码是否正确】
五、删除测试用数据库
mysql> show databases; ← 查看系统已存在的数据库
mysql> drop database test; ← 删除名为test的空数据库
六、对MySQL进行测试。包括建立新用户,以及用对关系性数据库进行数据库操作的指令来试着建立数据库及数据表。这里,新建用户以 sleinetpub为例。
[root@sample ~]# mysql -u root -p ← 通过密码用root登录
Enter password: ← 在这里输入密码
mysql> grant all privileges on test.* to sleinetpub@localhost identified by '在这里定义密码'; ← 建立对test数据库有完全操作权限的名为sleinetpub的用户
mysql> select user from mysql.user where user='sleinetpub'; ← 确认sleinetpub用户的存在与否
mysql> exit ← 退出MySQL服务器
[root@sample ~]# mysql -u sleinetpub -p ← 用新建立的sleinetpub用户登录MySQL服务器
Enter password: ← 在这里输入密码
mysql> create database test; ← 建立名为test的数据库
mysql> show databases; ← 查看系统已存在的数据库
mysql> use test ← 连接到数据库
mysql> create table test(num int, name varchar(50)); ← 在数据库中建立表
mysql> show tables; ← 查看数据库中已存在的表
mysql> drop table test; ← 删除表
mysql> show databases; ← 查看已存在的数据库
Empty set (0.01 sec) ← 确认test数据库已被删除(这里非root用户的关系,看不到名为mysql的数据库)
mysql> exit ← 退出MySQL服务器
七、删除测试用过的遗留用户
[root@sample ~]# mysql -u root -p ← 通过密码用root登录
Enter password: ← 在这里输入密码
mysql> revoke all privileges on *.* from sleinetpub@localhost; ← 取消sleinetpub用户对数据库的操作权限
mysql> delete from mysql.user where user='sleinetpub' and host='localhost'; ← 删除sleinetpub用户
mysql> select user from mysql.user where user='sleinetpub'; ← 查找用户sleinetpub,确认已删除与否
Empty set (0.01 sec) ← 确认sleinetpub用户已不存在
mysql> flush privileges; ← 刷新,使以上操作生效
mysql> exit
八、最后,重新启动一次HTTP服务。
[root@undefined /]# /etc/rc.d/init.d/mysqld stop ← 停止HTTP服务
停止mysql????????????????????????????????????????????? [确定]
[root@undefined /]# /etc/rc.d/init.d/mysqld start ← 启动HTTP服务
启动mysql????????????????????????????????????????????? [确定]
?
?
注: 配置文件: /etc/my.cnf中 datadir=/var/lib/mysql 定义的为数据库存放地址,修改数据库存放地址见本文最下面
?
bash: chkconfig: command not found错误:
[root@xuniji ~]# chkconfig
bash: chkconfig: command not found -------->环境变量里没有chkconfig的目录
[root@xuniji ~]# rpm -aq |grep chkconfig ------看是否安装了chkconfig
chkconfig-1.3.30.1-2
[root@xuniji ~]# export PATH=/sbin:$PATH
[root@xuniji ~]# chkconfig
chkconfig version 1.3.30.1 - Copyright (C) 1997-2000 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.
usage:?? chkconfig --list [name]
???????? chkconfig --add
???????? chkconfig --del
???????? chkconfig [--level ]
[root@xuniji ~]# echo $PATH ------------打印环境变量
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/gtl/bin
[root@xuniji ~]# PATH="$PATH":/sbin ------环境变量里加进去:/sbin
[root@xuniji ~]# echo $PATH?? ------------再次打印看是否成功加进去
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/gtl/bin:/sbin
到这里就解决了!
?
修改数据库存放目录:
默认在:/var/lib/mysql/ 按目录存放
0.关闭mysql
1.移动/var/lib/mysql/目录下的数据库目录到自定义目录,如:/home/mysql_datas
??????? 原数据库目录结构
?????????????? 比如/var/lib/mysql/mysql
? ? ? ? ? ? ? ? ? ? ? /var/lib/mysql/business
????????????????????? /var/lib/mysql/upper等
??????? 移动后结构
?????????????? 比如/home/mysql_datas/mysql
????????????????????? /home/mysql_datas/business
????????????????????? /home/mysql_datas/upper等
2.修改/etc/my.cnf中的如下两项到新目录的位置
datadir=/home/mysql_datas
3.修改mysql启动脚本中上面两项的位置
????????? #vi /etc/rc.d/init.d/mysqld
???????? get_mysql_option mysqld datadir "/var/lib/mysql"改为
????????? get_mysql_option mysqld datadir "/home/mysql_datas/mysql"
4.启动mysql
?
?
转