linux下mysql安装相关

主要内容:

  • 安装、卸载和配置mysql
  • 配置和管理msyql
  • 终端启动mysql和停止mysql
  • 检查mysql进程是否开启
  • 登陆和退出
  • 忘记root密码的解决方案
  • 查看数据库、表、列、存储过程等信息命令——Show
  • 创建用户、赋访问权限、修改密码
  • 数据定义、数据操作语句
  • 数据的备份与恢复
  • 外部IP无法访问问题


1、安装、卸载和配置mysql

见(http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html)

 

三种安装方式:

  1.从网上安装sudo apt-get install mysql-server。装完已经自动配置好环境变量,可以直接使用mysql的命令。

    注:建议将/etc/apt/source.list中的cn改成us,美国的服务器比中国的快很多。

  2.安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例。

  3.二进制包安装:安装完成已经自动配置好环境变量,可以直接使用mysql命令

网上安装和二进制包安装比较简单,重点说安装离线包。

  1.groupadd mysql

  2.mkdir /home/mysql

  3.useradd -g mysql -d /home/mysql mysql

  4.copy mysql-5.0.45-linux-i686-icc-glibc23.tar.gz到/usr/local目录

  5.解压:tarzxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz

  6.ln -s mysql-5.0.45-linux-i686-icc-glibc23 mysql

  7.cd /usr/local/mysql

  8.chown -R mysql .

  9.chgrp -R mysql .

  10.scripts/mysql_install_db --user=mysql (一定要在mysql目录下执行,注意输出的文字,里边有修改root密码和启动mysql的命令)

       11.为root设置密码:./bin/mysqladmin -u root password 'passw0rd'

 

卸载mysql

 

 

2、配置和管理msyql:

  

  设置字符集(以utf8为例):

    2) 修改my.cnf,在[client]下添加default-character-set=utf8

    3) 在[server]下添加default-character-set=utf8,init_connect='SETNAMES utf8;'

    4) 重启mysql。

    注:只有修改/etc下的my.cnf才能使client的设置起效,安装目录下的设置只能使server的设置有效。

      二进制安装的修改/etc/mysql/my.cnf即可

  

 

 

3、终端启动mysql和停止mysql

见(http://www.2cto.com/os/201205/132796.html)

sudo start mysql #手动的话这样启动

sudo stop mysql #手动停止

若无效可通过service启动和停止:

sudo service mysql start

sudo service mysql stop

 

4、检查mysql进程是否开启

要想检查mysqld 进程是否已经开启,可以使用下面的命令:

pgrep mysqld

如果进程开启,这个命令将会返回该进程的id;否则不返回任何信息。

 

 

5、登陆和退出

见(http://www.2cto.com/os/201205/132796.html)

使用命令mysql(登录后使用命令:mysql–help即可查看该命令的具体使用语法)

如下是简单的使用样例:

mysql –u xxxx –p;

这里xxxx表示用户名(默认情况下会有个root用户,密码为空)。然后会提示你输入密码Enterpassword:,此时输入密码xxxxxx(在linux下输入密码时,不会显示任何字符),密码正确则进入mysql。例如:

 

最后,输入“quit;”即可退出mysql。此时,终端会输出Bye作为反馈。

 

6、忘记root密码的解决方案

参见(http://www.cnblogs.com/allenblogs/archive/2010/08/12/1798247.html

主要思想:修改其配置文件,使登陆mysql时跳过权限检查,修改好密码后,再将之前做的修改去掉。如下:

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。

因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的

状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对

外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全

状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。

2.修改MySQL的登录设置:

登陆设置保存在文件my.cnf中。该文件位于根目录下的文件夹etc下mysql文件下(这是发生在二进制安装的情况下,若非此情况,文件my.cnf在文件夹etc)。关于目录的切换见文档“linux下文件目录相关命令.docx”,使用vi(或vim)编辑器进行编辑。Vi编辑器的使用见网页

http://www.eepw.com.cn/article/48018.htm)或文档“linuxvi编辑器使用手册.docx

切换到my.cnf所在目录之后,输入“sudovi my.cnf”即可进行编辑;输入“vimy.cnf”虽然也能打开,但是是只读模式,不能保存所做的修改,除非使用管理员账户登录linux系统。

在[mysqld]的段末加上一句(若无此段,则需要添加这样的一个段):skip-grant-tables

例如:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

skip-grant-tables

保存并且退出vi。

3.重新启动mysqld

手动停止mysql,在手动启动mysql。即分别输入命令“sudostop mysql”,“sudostart mysql”。

4.登录并修改MySQL的root密码

以root账户登录,然后修改对应的密码,例如:输入命令:

“update mysql.user setpassword=PASSWORD(“knowledge”) where user=”root”;”

“flush privileges;”

“quit;”

这里表示将原来所有root用户密码全部设置为”knowledgee”。注意:这里必须使用PASSWORD函数,这个函数保证了在登录时输入的密码为”knowledge”,否则linux会将”knowledge”作为将初始密码串加密后得到的结果直接进行保存,这样,在登录时输入”knowledge”是不能通过验证的。

Flushprivileges 将刷新所做的修改,否则,做的修改不会生效。

 

5.将MySQL的登录设置修改回来

用同样的方式打开文件my.cnf。

删除之前所做的修改。

保存并且退出vi。

6.重新启动mysqld

手动停止mysql,在手动启动mysql。即分别输入命令“sudostop mysql”,“sudostart mysql”。

 

 

7、查看数据库、表、列、存储过程等信息命令——Show

STATUS指令

该指令(需要登录之后才能使用此命令查看)可以用来查看当前数据库的状态信息,具体语法可以输入指令:status–help进行查看。

如输入:status可以查看版本等信息,其输出类似如下:

SHOW指令

见(http://blog.knowsky.com/250872.htm)

SHOW 指令(‘[..]’里的可选) ,指令结尾的“;”代表语句结束符,若一条语句书写完毕,并且希望mysql立刻执行,那么必须加上“;”。

#显示mysql中所有数据库的名称

show databases;

#显示mysql中的相关表

show tables [ from db_name];

#查看存储过程状态

show procedure status;

#显示表中列名称

show columns from table_name [ fromdatabase_name ] ;

或showcolumns from database_name.table_name;

#显示一个用户的权限,显示结果类似于grant 命令

show grants for user_name;

#显示表的索引

show index from table_name;

#显示一些系统特定资源的信息,例如,正在运行的线程数量

show status [from db_name];

#显示系统变量的名称和值

show [ global] variables;

#显示系统中正在运行的所有进程,也就是当前正在执行的查询大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码

show processlist;

#显示当前使用或者指定的database中的每个表的信息信息包括表类型和表的最新更新时间

show table status;

#显示服务器所支持的不同权限

show privileges;

#显示create database 语句是否能够创建指定的数据库

show create database database_name;

#显示create database 语句是否能够创建指定的数据库

show create table table_name;

#显示安装以后可用的存储引擎和默认引擎

show engies;

#显示innoDB存储引擎的状态

show innodb status;

#显示BDB存储引擎的日志

show logs -----这个已经被遗弃了

#显示最后一个执行的语句所产生的错误、警告和通知

show warnings;

#只显示最后一个执行语句所产生的错误

show errors;

#显示安装后的可用存储引擎和默认引擎

show [storage] engines;

 

查看数据库端口号

(http://blog.chinaunix.net/uid-15463753-id-2847046.html)

登陆后运行如下命令即可查看数据库端口号:

show variables like'port';

 

8、创建用户、赋访问权限、修改密码

见(http://www.linuxidc.com/Linux/2008-01/10699.htm)

建议使用grant语法来创建新用户

grant 权限1,权限2,...权限non 数据库名称.表名称to 用户名@用户地址identified by '连接口令';

权限1,权限2,...权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

当权限1,权限2,...权限n被allprivileges或者all代替,表示赋予用户全部权限。

当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址连接。

创建新用户时,’连接口令’不能为空,否则创建失败。可以通过再次执行grant语句来实现对现有用户权限信息的修改。

例如:

grant select on mysql.user todeepSearch@localhost identified by “deepSearch”;

flush privileges;

新建一个新用户:deepSearch,密码(口令)为:deepSearch,登陆主机为:localhost,其权限为:对数据库mysql中的表user有查询权限。

若想修改,则可以再次执行grant语句:

grant select on mysql.db todeepSearch@localhost identified by “”;

flush privileges;

注意,此时deepSearch用户增加了对数据库mysql内表db的查询权限,但同时,密码被修改为空。若要密码不被修改,则需要每次指定相同的密码。即密码会在每次执行grant时被更新。“flushprivileges;”是必须要有的,因为这一句用来刷新权限信息,否则所做的修改不会生效,即新用户无法登陆,旧用户的之前信息未真正更新。

 

可以通过向mysql的user表里添加一条记录或者使用grant语句来实现(当前的所有数据库名称、数据库内所有表名称、表的列名称都可以通过show命令查看)。如添加一个deepSearch用户,密码为deepSearch,登陆主机为”localhost”。就可以如下书写:

insert intomysql.user(host,user,password) values(“host”,“deepSearch”,PASSWORD(“deepSearch”));

flush privileges;

注意:这里必须使用PASSWORD函数,这个函数保证了在登录时输入的密码为”deepSearch”,否则linux会将”deepSearch”作为将初始密码串加密后得到的结果直接进行保存,这样,在登录时输入”deepSearch”是不能通过验证的。

但是本方法并未制定新创建的用户的权限,故需要进一步的设置其权限,即修改mysql.user表中新添加记录的其他字段值。

 

 

9、数据定义、数据操作语句

 

详见mysql官方语法(http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html

 

 

11、数据的备份与恢复

导入外部数据文本:

1.执行外部的sql脚本

参见(http://blog.csdn.net/vebasan/article/details/7619911)

如需要执行当前目录下的deepSearch文件夹下的input.sql文件里的所有mysql语句,可以使用source命令或者\.命令,具体格式为:\. <filename> | source <filename>。本例中应输入如下命令:

source deepSearch/input.sql;

或者

\.  deepSearch/input.sql

注意:使用此命令需要登录到mysql

 

2.数据传入命令 loaddata local infile "[文件名]"into table [表名];

备份数据库:(dos下)

mysqldump --opt school>school.bbb

mysqldump -u [user] -p [password]databasename > filename (备份)

mysql -u [user] -p [password] databasename< filename (恢复)

 

 

12、外部IP无法访问问题

(http://blog.csdn.net/xc635960736/article/details/7581342)

(此方案暂时无效,原因还在调查中)

设置mysql 的配置文件

/etc/mysql/my.cnf

找到 bind-address =127.0.0.1 将其注释掉,使得不再只允许本地访问;或将其改为bind-address =0.0.0.0。然后重启mysql。接着再为指定用户赋予一定的访问权限,使用grant命令,详细见“8”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值