MySQL5.7.17编译安装

mysql sever安装过程,只介绍编译安装方法

**********************************************************************

先到官方网站中下载源码包;

https://dev.mysql.com/downloads/mysql

选择下载源码包:



有很多针对不同系统的源码包,选择通用版:



下载完成后,放到我们服务器上;

接下来按照步骤进行解压编译安装即可;

MySQL从5.5开始,使用cmake 进行编译设置;因此,我们还要安装cmake编译工具:


shell > yum -y install cmake

#############################

bash: yum: command not found

没有安装yum命令,应该先安装yum命令。

cmake

没有安装cmake命令,也需要先安装cmake命令。

#############################

根据官方文档提示,此过程比较消耗内存,同时也一定注意,从MySQL5.7版本开始,安装MySQL需要依赖 Boost  的C++扩展,而且只能是 1.59.0 版本;

Boost 下载地址: http://www.boost.org/users/history  ;选择1.59.0版本下载,在编译是填写相应参数,指定Boost源码位置即可;

我是在Windows上下载的,下载压缩包使用rz -be 命令传到linux服务器上。


shell > tar zxf boost_1_59_0.tar.gz  #解压扩展

shell > mv boost_1_59_0  /usr/local/boost  # 将扩展源码剪切到/usr/local下

shell > groupadd  mysql

shell > useradd -r -g mysql -s /bin/false mysql  # 创建不可登录用户


创建安装目录和数据存放目录,并修改权限


shell > mkdir -p /usr/local/mysql/data

shell > chown -R mysql:mysql  /usr/local/mysql

shell >  tar zxf mysql-5.7.17.tar.gz   #解压mysql源码包

shell >  cd mysql-5.7.17   #切换目录到刚解压的文件夹中

shell >  cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/usr/local/mysql/data  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=/usr/local/boost


cmake 参数解释:

-DCMAKE_INSTALL_PREFIX: 指定安装路径

-DMYSQL_DATADIR : 指定数据存放路径

-DMYSQL_UNIX_ADDR :指定套间字路径

-DDEFAULT_CHARSET : 设置字符集

-DDEFAULT_COLLATION : 设置字符校验集

-DWITH_BOOST : 指定Boost扩展源码路径


shell > make  #此过程很漫长,请耐心等待

有可能会遇到失败,查看失败信息,网上找解决方案。

我的问题是分区的空间磁盘满了,换了个大的分区重新编译。

shell > make install

shell > chown -R mysql:mysql /usr/local/mysql # 重新修改权限

shell > cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf #复制配置文件

shell > vim /etc/my.cnf # 修改配置文件 修改内容如下

basedir = /usr/local/mysql/

datadir = /usr/local/mysql/data

socket = /tmp/mysql.sock

shell > cd /usr/local/mysql  #切换至安装目录

shell > bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql   # 初始化数据库


命令参数解释:

--defaults-file : 制定MySQL配置文件路径

--initialize : 初始化随机密码,注意,初始化的密码是一个过期密码,登录后需要修改密码

--user: 指定账户

上一个命令执行完之后,会在命令提示符的最后给出随机密码,

一定记住 将此密码记录下来


shell >  support-files/mysql.server start  #启动mysql 服务器

shell > bin/mysql -u root -p

Enter password:   # 输入刚刚的随机密码链接数据库

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY  '新密码';


至此:MySQL5.7+ 编译安装完成;

如何让第三方访问你的数据库数据?

mysql数据库远程访问设置方法

1、修改localhost
更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%" 
mysql>use mysql; 
mysql>update user set host = '%' where user = 'root'; 
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;

2、指定授权

使用myuser/mypassword从任何主机连接到mysql服务器: 
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

 3、泛授权

mysql -h localhost -u root 

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //赋予任何主机上以root身份访问数据的权限 

mysql>FLUSH PRIVILEGES;

MySql命令行

1、mysql服务的启动和停止


net stop mysql
  net start mysql

2、登陆mysql


登陆终端(windows cmd或者linux 命令行下)且已经安装mysql-client软件;
语法如下: mysql -h 主机ip -u 用户名 -p 用户密码
例如:mysql -h 192.168.31.194 -u root -p 123456
即可登陆mysql管理
  键入命令:mysql -u root -p, 回车后提示你输入密码,输入:12345,然后回车即可进入到mysql中了,mysql的提示符是:
  mysql>
  注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

3、增加新用户


格式:grant 权限 on 数据库.* to 用户名@登录主机Identifiedby "密码"
  如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
  grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
  如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
  如果你不想user1有密码,可以再打一个命令将密码去掉。
  grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

4、操作数据库


登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
  1、 显示数据库列表。
  show databases;
  缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
  2、 显示库中的数据表:
  use mysql;
  show tables;
  3、 显示数据表的结构:
  describe 表名;
  4、 建库与删库:
  create database 库名;
  drop database 库名;
  5、 建表:
  use 库名;
  create table 表名(字段列表);
  drop table 表名;
  6、 清空表中记录:
  delete from 表名;
truncate table 表名;
  7、 显示表中的记录:
  select * from 表名;

5、导出和导入数据




  1. 导出数据:
      mysqldump--opt test > mysql.test
      即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
      如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
      就是把数据库dbname导出到文件mysql.dbname中。
      2. 导入数据:
      mysqlimport -u root -p123456 < mysql.dbname。
      3. 将文本数据导入数据库:
      文本数据的字段数据之间用tab键隔开。
      use test;
      load data local infile "文件名" into table 表名;
      1:使用SHOW语句找出在服务器上当前存在什么数据库:
      mysql> SHOW DATABASES;
      2:2、创建一个数据库MYSQLDATA
      mysql> CREATE DATABASE MYSQLDATA;
      3:选择你所创建的数据库
      mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
      4:查看现在的数据库中存在什么表
      mysql> SHOW TABLES;
      5:创建一个数据库表
      mysql> CREATE TABLE MYTABLE (namevarchar(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';



你可能感兴趣的:(MySQL5.7.17编译安装)