首页 > 代码库 > linux 下安装mysql相关笔记

linux 下安装mysql相关笔记

安装mysql
yum -y install mysql-server
yum -y install mysql mysql-devel

都显示完成就可以了

查看mysql的版本号
rpm -qi mysql-server

数据库目录
/var/lib/mysql/
配置文件
/usr/share /mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)

 

启动mysql:

service mysqld start

停止mysql:

service mysqld stop

 

修改密码及配置:

yum 安装的mysql默认有两个用户一个是空用户也就是匿名用户,一个是root但是密码也是为空的,这样可不行。

首先如果你在用匿名用户或者登陆后遇到这个错:Ignoring query to other database

说明你登陆的时候没有加-u这个参数

下面说说怎么配置吧

 

二、配置
[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                                              [确定]

linux 下安装mysql相关笔记