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行
- basedir=/usr/local/mysql
- 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
浙公网安备 33010602011771号