码迷,mamicode.com
首页 > 数据库 > 详细

多学一点(六)——在Linux下安装配置MySQL

时间:2015-04-03 06:50:29      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:linux   mysql   

1.下载、安装 MySQL

[root@localhost~]# cd /usr/local/src

[root@localhostsrc]# wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz

[root@localhostsrc]# tar -zxvf mysql-5.1.40-linux-i686-icc-glibc23.tar.gz

[root@localhostsrc]# mv mysql-5.1.40-linux-i686-icc-glibc23 /opt/mysql

创建 shell /sbin/nologin mysql 用户:

[root@localhostsrc]# useradd -s /sbin/nologin mysql

[root@localhostsrc]# mkdir -p /data/mysql

[root@localhostsrc]# chown -R mysql:mysql /data/mysql

[root@localhostsrc]# cd /opt/mysql

[root@localhostmysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

注:在这一步中,可能会报如下错误信息——

Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1……

这是因为缺少libaio 库而导致 mysql_install_db 失败,只要使用 yum 命令安装后再次执行 mysql_install_db 即可:

[root@localhostmysql]# yum install -y libaio

[root@localhostmysql]# cp support-files/my-large.cnf /etc/my.cnf

[root@localhostmysql]# cp support-files/mysql.server /etc/init.d/mysqld

[root@localhostmysql]# chmod 755 !$

[root@localhostmysql]# vim !$

修改其中的两行,原内容分别如下:

basedir=

datadir=

修改后内容如下:

basedir=/opt/mysql

datadir=/data/mysql

保存退出。其中,basedir设置为 MySQL 的安装目录,对于 MySQL 来说,它的默认安装目录为/usr/local/mysql ,如果已经安装到了该目录下,则无需特意设置 basedir ,否则像本例中,将 MySQL 安装到了/opt/mysql 下,basedir 则要设置为 /opt/mysql 。同理,将 datadir 设置为和前面 mysql_install_db 中对应的 /data/mysql

mysqld 添加到服务:

[root@localhost mysql]#chkconfig --add mysqld

[root@localhostmysql]# chkconfig mysqld on

启动 MySQL

[root@localhost mysql]#service mysqld start

出现下列信息代表MySQL安装完成,已经启动:

Starting MySQL.SUCCESS!

最后,修改/etc/profile 文件,将 MySQL 下的 bin/ 目录添加到 PATH 中:

[root@localhostmysql]# vim /etc/profile

exportPATH=$PATH:/opt/mysql/bin

[root@localhostmysql]# source !$

这样一来,以后我们在使用 MySQL 命令时都无需再使用绝对路径了。

 

2.配置MySQL

占位,之后再来补充这部分内容,敬请期待。

 

3. MySQL 常用操作:

3.1 初次使用:

默认情况下,MySQL root 用户是没有密码的,我们在使用MySQL 前的第一件事就是为其 root 用户设置密码:

[root@localhost ~]# mysqladmin -u rootpassword ‘newpasswd’

设置完成后,连接 MySQL 数据库(使用 MySQL root 用户登录时可以省略 -u root):

[root@localhost ~]# mysql -uroot -p  //等同于 mysql -p

Enter password:

输入刚刚设置的密码即可登录 root 用户,可以执行如下常用操作:

查看都有哪些库  show databases;
查看某个库的表  use db; show tables; 
查看表的字段  desc tb;
查看建表语句  show create table tb;
当前是哪个用户  select user();
当前库  select database();
创建库  create database db1; 
创建表  create table t1 (`id` int(4),`name` char(40));  
查看数据库版本  select version(); 
查看mysql状态  show status;
修改mysql参数  showvariables like ‘max_connect%‘; set global max_connect_errors = 1000; 
查看mysql队列  showprocesslist; 
创建普通用户并授权 grant all on *.* to user1 identified by‘123456‘; 
grant all on db1.* to ‘user2‘@‘10.0.2.100‘ identified by ‘111222‘; 
grant all on db1.* to ‘user3‘@‘%‘ identified by ‘231222‘;
更改密码  update mysql.user set password=password("newpwd") where user=‘username‘ ; flush privileges;
查询  select count(*) frommysql.user; select * from mysql.db; select * from mysql.db where host like‘10.0.%‘; 
插入  update db1.t1 set name=‘aaa‘where id=1;  
清空表  truncate table db1.t1; 
删除表  drop table db1.t1; 
删除数据库  drop database db1; 
修复表  repair table tb1 [use frm];

3.2 备份与恢复:

使用如下命令进行数据库备份:

[root@localhost ~]# mysqldump -uroot -pdbname > db_bak.sql

使用如下命令进行数据库恢复:

[root@localhost ~]# mysql -uroot -p dbname < db_bak.sql

恢复的前提是 dbname 库在数据库中存在,否则需要先创建dbname 库。

除了上面提到的一次将整个数据库备份下来,还可以一次只备份一个数据库中的一张表,使用如下命令:

[root@localhost ~]# mysqldump -uroot -pdbname tabelname > tb_bak.sql

进行数据库恢复时,与备份整个数据库时相同:

[root@localhost ~]# mysql -uroot -p dbname < tb_bak.sql

恢复的前提也是 dbname 库在数据库中存在,而tablename 表不一定要存在。

在默认情况下,这种备份是带有原数据库 / 表中的数据的,如果只想备份表结构,只需要加上 -d 参数:

[root@localhost ~]# mysqldump -uroot -p -ddbname > db_structure_bak.sql

为了避免备份 / 恢复时字符集不同可能导致的乱码,可以在备份 / 恢复时指定字符集,使用 --default-character-set 参数:

[root@localhost ~]# mysqldump -uroot -p--default-character-set=utf-8 dbname > db_bak.sql

[root@localhost ~]# mysql -uroot -p--default-character-set=utf-8 dbname < db_bak.sql

3.3 忘记 MySQL 的密码:

修改 /etc/my.cnf 文件:

[root@localhost ~]# vim /etc/my.cnf

[mysqld] 部分内容中添加如下内容:

skip-grant

保存退出,重启 MySQL

[root@localhost ~]# service mysqld restart

Shutting down MySQL. SUCCESS!

Starting MySQL. SUCCESS!

之后可以直接以无密码状态进入 MySQL

[root@localhost ~]# mysql -uroot   //等同于 mysql

mysql> use mysql;update user u setu.password=password(‘newpassword’) from user u where u.user=’root’;

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3  Changed: 3 Warnings: 0

之后再次修改 /etc/my.cnf 文件,将添加的skip-grant 选项删除或者注释掉,再次重启 MySQL 即可:

[root@localhost ~]# service mysqld restart

补充:在知道现有密码的情况下,如果想要改为新密码,不需要进入 MySQL 数据库中执行 update语句来重置密码,使用 mysqladmin 命令:

[root@localhost ~]# mysqladmin -uroot -ppassword ‘newpasswd’

本文出自 “细桶假狗屎” 博客,请务必保留此出处http://xitongjiagoushi.blog.51cto.com/9975742/1627864

多学一点(六)——在Linux下安装配置MySQL

标签:linux   mysql   

原文地址:http://xitongjiagoushi.blog.51cto.com/9975742/1627864

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!