您的位置:首页 > 运维架构 > Tomcat

(五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql安装

2015-05-31 20:29 946 查看
因为在网上发现系统性、严谨(特别是在安全方面)的Linux部署方面的参考文章很少,于是整理以下六篇Linux环境部署的系列性文章,其为本人在实践中,完整的搭建一个基于Linux系统上Centos+Nginx+Tomcat+Mysql+FTP的操作文档,梳理记录如下,特别是在实践中碰到的各种问题和容易出错的地方,都做了重要标注和提醒(踩过的那些坑,我都特别标注出来);希望对于那些想要系统地完整搭建Linux环境的程序员们一个系统性的参考。但因大部分都是边搭建边记录下的操作,必定有所疏漏,还望见谅;
如有问题和意见请帮忙在后面的评论中指出,万分感谢!另整个搭建的过程中参考了网上许多优秀博主的优秀实践,在文中末尾或者其他适当的地方都有所标注,如有必要,你可以按参考的链接阅读参考的原文章。本文档一共分为6篇,这6个部分分别是:
1、(一)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - FTP安装

2、(二)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 防火墙配置

3、(三)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Nginx环境搭建

4、(四)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 安装Tomcat和JDK 以及 Nginx与Tomcat整合

5、(五)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - Mysql 安装

6、(六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 一些常用命令总结

这篇系列性文章将会在以后的实践中持续地做修正和更新。
(在整理和记录这些文档的时候,对于我这个曾经从来不写博客的程序员来说,我发现的确收获良多,首先最重要的是对我的知识结构进行了一次重要的梳理和总结;另外,让我的思维和逻辑更加缜密;第三,强化和加深记忆;四,共享和分享的精神。
最后,希望对你有用。)

[b](五) Mysql安装[/b]

1、安装 查看有没有安装过:

yum list installed mysql*

rpm -qa | grep mysql*

查看有没有安装包:

yum list mysql*

安装mysql客户端:

yum install mysql

安装mysql服务器端:

yum install mysql-server

yum install mysql-devel

2、启动&&停止数据库字符集设置

mysql配置文件/etc/my.cnf中加入default-character-set=utf8

启动mysql服务: service mysqld start或者/etc/init.d/mysqld
start

开机启动:

添加开机启动:chkconfig --add mysqld;

开机启动:chkconfig mysqld on;

查看开机启动设置是否成功chkconfig--list | grep mysql*

mysqld 0:关闭 1:关闭 2:启用
3:启用 4:启用 5:启用
6:关闭

停止服务命令:

service mysqld stop

3、登录 创建root管理员:

mysqladmin -u root password 123456

登录: mysql -u root-p输入密码即可。

(可能提示“ERROR 1045 (28000): Access denied for user '-root'@'localhost' (using password: YES)”)就用到下面的功能。

忘记密码:

service mysqld stop;

mysqld_safe --user=root --skip-grant-tables;

这一步骤执行的时候不会出现新的命令行,你需要重新打开一个窗口执行下面的命令

mysql -u root ;

use mysql;

update user setpassword=password("new_pass") where user="root";

flushprivileges;

4、远程访问 开放防火墙的端口号mysql

增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。

或者:update user set host = '%' where user = 'root' and host="localhost";

5、Linux MySQL的几个重要目录

数据库目录/var/lib/mysql/

配置文件 /usr/share /mysql(mysql.server命令及配置文件)

相关命令 /usr/bin(mysqladmin、mysqldump等命令)

启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录)



6、删除 mysql数据库

如果使用的是 yum安装的 mysql,需要删除的话,就使用如下命令:

yum -y remove mysql*

然后将 /var/lib/mysql文件夹下的所有文件都删除干净

最后再重新执行上面的安装步骤。



7.授权用户从远程登录

1. 改表法。

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql"数据库里的
"user"表里的"host"项,从"localhost"改称"%"

mysql -u root -p;

mysql>use mysql;

mysql>update user set host = '%' where user = 'root' and host="localhost";

mysql>select host, user from user
where user = 'root';

2. 授权法。

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;





修改Mysql默认数据库数据默认存放位置

参考:/article/1241512.html



由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。 我这里在/data, 把外部数据盘挂载在/data下。

下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/data/mysql目录的具体操作:



在数据库里看一下数据库里当前数据文件的存放路径:

mysql> show variables like '%dir%';

1、首先我们需要关闭MySQL,命令如下

service mysqld stop

2、然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录

cd /var/lib

ls

运行这个命令之后就会看到mysql的目录了,然后执行cp命令

cp -a mysql /data/ #这样就把数据库复制到/dat下面去了

注意:(-a这个参数一定要带着,否则复制过去的权限就不对了。)

如果数据库比较大的话,时间会比较长,可能会超时,具体怎么设置ssh不超时的办法,请大家自己找相关资料。

3、然后我们修改配置文件,一共有三个,下面我一一说明

修改第一个文件:修改之前先备份cp /etc/my.cnf /etc/my.cnfbak

vi /etc/my.cnf

打开之后修改datadir的目录为/data/mysql

把socket改成/data/mysql/mysql.sock #为了安全起见,你可以把原来的注释掉,然后重新加入一行,改成现在的目录。

修改第二个文件:修改之前先备份 cp /etc/init.d/mysqld /etc/init.d/mysqldbak

vi /etc/init.d/mysqld

注意:准确的位置是/etc/rc.d/init.d/mysqld,由于这里这里有一个/etc/init.d到/etc/rc.d/init.d的映射,

所以用上面的命令即可,也简单。

把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:/data/mysql

修改第三个文件:修改之前先备份 cp /usr/bin/mysqld_safe/usr/bin/mysqld_safebak

vi /usr/bin/mysqld_safe

这里也是修改datadir的目录为/data/mysql

4、下面需要建立一个mysql.sock的链接

ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock

至此所有的修改都完成了,下面启动mysql

service mysqld start

或者重启linux

reboot

如果能正常启动,说明修改成功。



#防火墙允许mysql端口3360远程访问

#vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -jACCEPT



Mysql配置文件my.cnf

安装了mysql没有my.cnf文件的情况

1、可以把mysql的示例配置文件,如my-medium.cnf拷贝到/etc/my.cnf,再去修改/etc/my.cnf的配置/usr/share/doc/MySQL-server-5.5.38/my-medium.cnf(ExampleMySQL
config file for medium systems with little memory (32M - 64M) )

可以通过命令:>find / -name 你要找的文件(my.cnf/ my-medium.cnf)
或者 >whereis my.cnf 找到.

所有mysql的配置文件例子都放在:

# ll/usr/share/doc/MySQL-server-5.5.38/



2、参考目录下面的文章修改my.cnf文件(Example
MySQL config file for very large systems)

修改MySQL的时区:
查看:mysql> show variables like '%time_zone%';
1 、可以通过修改my.cnf

在 [mysqld]
之下加

default-time-zone=timezone

来修改时区。如:

default-time-zone = '+8:00'

修改完重启msyql ># service mysql restart

注意一定要在 [mysqld]之下加,否则会出现 unknown variable 'default-time-zone=+8:00'
2、通过命令行在线修改(经测试不行)
看到有人通过命令行修改,试过之后发现只能改掉 timezone(而且只针对当前客户端影响),但是查处的时间还是原来的CST时间,重启mysql也没有,全部恢复了。所以这种方式行不通,还是需要修改my.cnf配置文件才行.以下为测试:
1. set time_zone = timezone
2. 比如北京时间(GMT+0800)
3. set time_zone = '+8:00'; 如下:
4. mysql> set time_zone='+8:00';
5.
6. mysql> show variables like '%time_zone%';
7. +------------------+--------+
8. | Variable_name | Value |
9. +------------------+--------+
10.| system_time_zone | CST |
11.| time_zone | +08:00 |
12.+------------------+--------+
mysql> flush privileges; # 立即生效
此时mysql时区已更改正确,与系统时区都使用为北京时间。
## 能改掉 timezone(而且只针对当前客户端影响),但是查处的时间还是原来的CST时间,重启mysql也没有,全部恢复了。所以这种方式行不通,还是需要修改my.cnf配置文件才行.

验证:
mysql> show variables like '%time_zone%';
mysql > select CURTIME();

mysql > select now();


参考文章:

linux下mysql的编译安装和my.cnf配置文件详解:

http://blog.itpub.net/26690043/viewspace-719495/

linux下导入、导出mysql数据库命令

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):

1、导出数据和表结构:

mysqldump -u用户名 -p密码数据库名 > 数据库名.sql

#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql

敲回车后会提示输入密码
2、只导出表结构

mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ ---> mysql的data目录

二、导入数据库

1、首先建空数据库

mysql>create database abc;
2、导入数据库

方法一:

(1)选择数据库

mysql>use abc;

(2)设置数据库编码

mysql>set names utf8;

(3)导入数据(注意sql文件的路径)

mysql>source /home/abc/abc.sql;

方法二:

mysql -u用户名 -p密码数据库名 < 数据库名.sql

#mysql -uabc_f -p abc < abc.sql
建议使用第二种方法导入。
注意:有命令行模式,有sql命令

参考:
http://blog.csdn.net/tengdazhang770960436/article/details/18361979
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: