日期:2014-05-16  浏览次数:20584 次

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