15、CentOS7.2 使用yum和编译安装MySQL5.7的两种方法。

数据库简介:
  MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
  由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
  MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
  MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
  MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。

特点:
(1)开放性
(2)多线程
(3)之处多种API
(4)跨数据库连接
(5)国际化  
(6)巨大的数据库体积

常用命令:
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values (”hyq”,”M”);
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex=”f” where name=’hyq’;
全局管理权限对应解释:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录–其它什么也不允许做。


一、yum安装mysql5.7:

[root@zabbx-node1 ~]# cd /etc/yum.repos.d/
[root@zabbx-node1 yum.repos.]#wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm //下载mysql5.7的rpm文件
[root@zabbx-node1 yum.repos.]#yum localinstall mysql57-community-release-el7-8.noarch.rpm -y //安装rmp文件
[root@zabbx-node1 yum.repos.]#yum install mysql-community-server  -y //安装MySQL数据库 约190M左右

[root@zabbx-node1 yum.repos.]#systemctl enable mysqld //启动数据库
[root@zabbx-node1 yum.repos.]# systemctl start mysqld
[root@zabbx-node1 yum.repos.]#grep 'temporary password' /var/log/mysqld.log //查看MySQL数据的原始密码文件
2018-07-26T10:38:49.096808Z 1 [Note] A temporary password is generated for root@localhost: gie%WzD4d7cp
[root@zabbx-node1 yum.repos.]# mysql -u root -pgie%WzD4d7cp
mysql> set password for 'root'@'localhost'=password('Abc@123456'); ////重新为数据库设置密码(一定要是复杂的密码,否则ERROR 1819 (HY000): Your password does not satisfy the current policy requirements)
Query OK, 0 rows affected, 1 warning (0.00 sec)


[root@zabbx-node1 yum.repos.]# systemctl daemon-reload
[root@zabbx-node1 yum.repos.]# vim /etc/my.cnf
character_set_server=utf8
init_connect='SET NAMES utf8'

[root@zabbx-node1 ~]# mysql -uroot -pAbc@123456 //验证是否设置成功
mysql>  select version();   
+-----------+
| version() |
+-----------+
| 5.7.22    |
+-----------+
1 row in set (0.01 sec)

mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

mysql>


二、编译安装mysql5.7:

[root@linux-node1 ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz   //下载会比较久,建议翻墙
[root@linux-node1 ~]# tar -zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz   //解压
[root@linux-node1 ~]# cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql  //copy到/usr/local/mysql
[root@linux-node1 ~]#  groupadd mysql  //添加系统mysql组
[root@linux-node1 ~]#  useradd -r -g mysql mysql   //添加mysql用户
[root@linux-node1 ~]# cd /usr/local/mysql  //切到mysql目录
[root@linux-node1 mysql]#  chown -R mysql:mysql ./     //修改当前目录拥有者为mysql用户
[root@linux-node1 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  //安装数据库
2018-09-06T14:12:46.653798Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-09-06T14:12:48.566697Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-09-06T14:12:48.743652Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-09-06T14:12:48.832673Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: ef2c7def-b1de-11e8-8957-000c29f9b725.
2018-09-06T14:12:48.833906Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-09-06T14:12:48.834662Z 1 [Note] A temporary password is generated for root@localhost: 3j.Krj*sLOrq       《===================生成临时密码

[root@linux-node1 mysql]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data   //执行此命令创建RSA private key
[root@linux-node1 mysql]# chown -R mysql:mysql data/    //修改当前data目录拥有者为mysql用户
[root@linux-node1 mysql]# vi /etc/my.cnf    //配置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   

[root@linux-node1 ~]# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld   //添加开机启动
[root@linux-node1 ~]# vi /etc/init.d/mysqld
basedir=/usr/local/mysql      #在46行修改
datadir=/usr/local/mysql/data  #在47行修改

[root@linux-node1 ~]# chmod +x /etc/init.d/mysqld
[root@linux-node1 ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@linux-node1 ~]# netstat -tnlp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      2685/mysqld

[root@linux-node1 ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/
[root@linux-node1 ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
[root@linux-node1 ~]# mysql -uroot -p3j.Krj*sLOrq
mysql> set password for 'root'@'localhost' = password('Abc@123');  //设置root密码

自动编译安装脚本:
[root@linux-node1 ~]# vi mysql-install.sh
#!/bin/bash
#CentOs7.2 Install the mysql5.7
#author:yongbangyan
#email:[email protected]

#wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
tar -zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
sleep 5
if [ $? -eq 0 ];then
  cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
  sleep 3
  groupadd mysql && useradd -r -g mysql mysql
  cd /usr/local/mysql
  chown -R mysql:mysql ./
  bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  sleep 2
  bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
  chown -R mysql:mysql data/
fi
>/etc/my.cnf
cat > /etc/my.cnf << EOF
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
EOF

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
sed -i '46s@basedir=@basedir=/usr/local/mysql@' /etc/init.d/mysqld
sed -i '47s@datadir=@datadir=/usr/local/mysql/data@' /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
ln -s /usr/local/mysql/bin/mysql /usr/bin/

猜你喜欢

转载自blog.csdn.net/weixin_41515615/article/details/82470121