3.1. 8 构建传统MySQL服务器

3.1. 8 构建传统MySQL服务器

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司, 目前属于Oracle公司,MySQL被广泛地应用Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库

对应目前主流的LAMP架构来说,Mysql更是得到各位IT运维、DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始人已独立出来自己重新开发了一个MariaDB,而且使用的人数越来越多。而且MariaDB兼容mysql所有的功能和相关参数。

Mysql常用的两大引擎有MyISAM和innoDB,那他们有什么明显的区别呢,什么场合使用什么引擎呢?

MyISAM类型的表强调的是性能,其执行数 度比InnoDB类型更快,但不提供事务支持,如果执行大量的SELECT操作,MyISAM是更好的选择,支持表锁。

InnoDB提供事务支持事务,外部键等高级 数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。

一)安装MySQL

MySQL安装方式有两种,一种是yum/rpm安装,另外一种是tar源码安装。

Yum 安装方法很简单,执行命令如下即可: yum install –y mysql-server  mysql-devel mysql

源码安装MySQL方式:

现在用tar包安装5.7.22和5.7.20一样的,5.7.20之后的和之前的版本还是有点不一样的

先检查是否安装:rpm -qa | grep mysql返回为空,代表未安装。

1.   cd /usr/local/src
 wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

解压: tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz       

复制:cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql

2、添加系统mysql组和mysql用户 

添加系统mysql组     groupadd mysql

添加mysql用户 useradd -r -g mysql mysql (添加完成后可用id mysql查看)

3、安装数据库

切到mysql目录 cd /usr/local/mysql

修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./

安装数据库 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

 

 

生成了临时密码:(*jIEfs&tl0hj

执行以下命令创建RSA private key 

  bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./

修改当前data目录拥有者为mysql用户 chown -R mysql:mysql data

4、配置my.cnf

vim /etc/my.cnf    (直接把下面内容复制上就行)

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)

lower_case_table_names = 1

log-error=/var/log/mysqld.log

pid-file=/usr/local/mysql/data/mysqld.pid

 

 

添加开机启动     cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

 

修改   vim /etc/init.d/mysqld   

添加路径 46行   

  1. basedir=/usr/local/mysql
  2. datadir=/usr/local/mysql/data

 

 

5、启动mysql   service mysqld start 

 加入开机起动    chkconfig --add mysqld  

6、登录修改密码 mysql -uroot -p 上面初始化时的密码

如果出现错误 需要添加软连接  ln -s /usr/local/mysql/bin/mysql /usr/bin

 

第一件事先修改密码

alter user 'root'@'localhost' identified by 'root1';   //修改密码为’root1’
flush privileges;    #刷新权限
GRANT ALL PRIVILEGES ON *.* TO sc-luoxf@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;                                  #授权新用户sc-luoxf

二)MySQL日常操作命令

create database test_db; 创建名为test_db数据库

use test_db; 进入test_db数据库

show tables; 查看数据库里有多少张表。

 

 

create table test01 (id varchar(20),name varchar(20));创建名为test01表,并创建两个字段,id、name、数据长度(用字符来定义长度单位。)

insert into test01 values ("001","wugk1"); 向表中插入数据。

select * from test01; 查看test01表数据内容。

 

 

grant all privileges on test_db.*  to  test@localhost identified by '123456';

grant  all  on  test_db.*      to  test@localhost identified by '123456';

grant  select,insert,update,delete on *.* to test@”%”  identified by  ‘123456’;

mysql数据库授权。

flush  privileges;刷新权限

mysqldump –uroot –p123456  test_db >/tmp/test.db.sql   ;MySQL备份或导出

mysql –uroot –p123456 test_db  < /tmp/test.db.sql        ;MySQL导入

mysqladmin –uroot –p123456 password   newpassword    ;修改MySQL root密码

drop database test_db ; 删除数据库

drop table test01 ;  删除表

delete from test01 ; 清空表内容

show variables like '%char%'; 查看数据库字符集

修改Mysql字符集为UTF-8的方法:在/etc/my.cnf对应如下配置段加入相应命令。

[client]字段里加入default-character-set=utf8

[mysqld]字段里加入character-set-server=utf8

[mysql]字段里加入default-character-set=utf8

然后重启MySQL服务即可。

 

三)MySQL开放远程访问端口日常操作命令

安装了MySQL默认是拒绝远程连接的。

首先进入数据库,使用系统数据库mysql

mysql -u root -p mysql #回车,然后输入则使用了系统数据库

接着对系统数据库的root账户设置远程访问的密码,与本地的root访问密码并不冲突。

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; #123456为你需要设置的密码

在操作系统防火墙设置一下,不然3306端口还是无法访问。

firewall-cmd --zone=public --add-port=3306/tcp –permanent   设置完之后,查看一下是否能通过。

iptables -L -n

 

 

如果想要限制访问。

iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

OK,这样就可以远程访问了。

 

将修改永久保存到防火墙中

/etc/rc.d/init.d/iptables save

posted on 2018-10-21 15:46  luoxf  阅读(108)  评论(0)    收藏  举报

导航