菜鸟学Linux 第072篇笔记 MySQL source install

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

菜鸟学Linux 第072篇笔记 MySQL source install



MySQL  产品列表

Server (mysqld, mysql)

Cluster 集群

Proxy   (读写分离)

Adminitrator

Query Browser

Workbench

Migration Toolkit

Embedded Server

Drivers and Connectors



MySQL --> MariaDB

Percona 



MySQL 安装

专用软件包管理器包

deb, rpm

rpm:

RHEL(Oracle Linux), CentOS

SUSE

rpm packages

MySQL-client

MySQL-debuginfo

MySQL-devel

MySQL-embedded

MySQL-ndb-management

MySQL-server

MySQL-shared

MySQL-shared-compat

MySQL-test

MySQL-VERSION.PLATFORM.src.rpm


通用二进制格式包

gcc(GNU), icc(Intel): x86, x64

源代码包 (可定制)

5.5, 5.6

cmake 



MySQL用户密码修改:

1. #mysqladmin -u USERNAME -h HOSTNAME password 'NEW_PASS' -p

2. mysql> SET PASSWORD FOR 'USERNAME'@'HOST'=password('new_pass')

3. mysql> UPDATE mysql.user SET PASSWORD=PASSWORD('new_pass') WHERE CONDITION

FLUSH PRIVILEGES



MySQL 安装

源码安装MySQL

1. cmake (编译安装)

2. 创建lvm分区(用来存放数据库文件 可扩容)

3. 安装 MySQL mysql-5.5.28 



1. 安装cmake

# tar xf cmake-2.8.8.tar.gz

# cd cmake-2.8.8

# make && make install




2. 创建lvm分区

# fdisk /dev/sdb

n e +5g t 8e w

# partprobe /dev/sdb

# pvcreate /dev/sdb1

# vgcreate myvg /dev/sdb1

# lvcreate -L 1G -n mydata myvg

# lvs

# mke2fs -j /dev/myvg/mydata

# mkdir /mydata

# vim /etc/fstab

/dev/myvg/mydata   /mydata       ext3    defaults        0 0

# mount -a 

# mkdir /mydata/data




3. 安装 MySQL mysql-5.5.28


cmake指定编译选项的方式不同于make,其实现方式对比如下:

./configure           cmake .

./configure --help    cmake . -LH or ccmake .


指定安装文件的安装路径时常用的选项:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/data/mysql

-DSYSCONFDIR=/etc


默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1


若要明确指定不编译某存储引擎,可以使用类似如下的选项:

-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1

比如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1


如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:

-DWITH_READLINE=1

-DWITH_SSL=system

-DWITH_ZLIB=system

-DWITH_LIBWRAP=0


其它常用的选项:

-DMYSQL_TCP_PORT=3306

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

-DENABLED_LOCAL_INFILE=1

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DWITH_DEBUG=0

-DENABLE_PROFILING=1


如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean

rm CMakeCache.txt



# groupadd -r mysql

# useradd -r -g mysql -s /sbin/nologin mysql

# id mysql

# chown mysql.mysql /mydata/data

# tar -xf mysql-5.5.28.tar.gz

# cd mysql-5.5.28

# cmake . -LH

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

          -DMYSQL_DATADIR=/mydata/data \

          -DSYSCONFDIR=/etc \

  -DWITH_INNOBASE_STORAGE_ENGINE=1 \

          -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

          -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

  -DWITH_READLINE=1 \

  -DWITH_SSL=system \

  -DWITH_ZLIB=system \

  -DWITH_LIBWRAP=0 \

  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

  -DDEFAULT_CHARSET=utf8 \

          -DDEFAULT_COLLATION=utf8_general_ci

   (注意我这里是为了好看,需要手动输入每一行内容,去掉\,这个是一个命令)

# make 

# make install

# cd /usr/local/mysql

# chown -R :mysql .

# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data

# cp support-files/my-large.cnf /etc/my.cnf

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on

# chkconfig --list mysqld

# service mysqld start

# vim /etc/profile.d/mysql.sh

export PATH=$PATH:/usr/local/mysql/bin

# . /etc/profile.d/mysql.sh



(到此mysql完成编译安装)




删除匿名用户

mysql> DROP USER ''@localhost;

查看是否删除匿名用户

mysql> SELECT user,host,password FROM mysql.user WHERE user='';


mysql> DROP USER ''@localhost;

mysql> DROP USER ''@mysky;

mysql> DROP USER 'root'@'::1';

mysql> SELECT User,Host,Password FROM user;

  mysql> UPDATE user SET Password=PASSWORD('mysql') WHERE user='root';

  mysql> FLUSH PRIVILEGES;




 配置本地用户访问无需输入用户名和密码

 # vim ~/.my.cnf

  [client]

user=root

password=mysql

host=localhost





访问mysql

mysql-->mysqld


同台主机Unix

mysql --> mysql.sock --> mysqld

同台主机Windows

mysql --> memory(pipe) --> mysqld


不在同一台主机上,基于TCP/IP协议通信,

mysql

-uroot -h192.168.11.122(本机)  此方式为使用tcp/ip方式通信



Mysql client programs

mysql

mysqldump

mysqladmin

mysqlimport

mysqlcheck

[client]

-u HOSTNAME

-h HOST

-p ''

--protocol {tcp|socket|pipe|memory}

--port PORT



Mysql no-client utilities

myisamchk

myisampack


MyISAM:

每表三个文件

.frm 表结构

.MYD 表数据

.MYI 表索引


InnoDB:

.opt 数据库排序属性

.frm 表结构

.idb 表空间 (表数据和表索引)


所有表共享一个表空间文件:

建议:每表一个独立的表空间文件;

# vim /etc/my.cnf

[mysqld]

innodb_file_per_table = 1

# service mysql restart

# mysql

mysql> SHOW GLOBAL VARIABLES LIKE '%innodb%';

显示为innodb_file_per_table           | ON

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1890287如需转载请自行联系原作者

Winthcloud
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
关系型数据库 MySQL Linux
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
linux CentOS 7.4下 mysql5.7.20 密码改简单的方法
16 0
|
1月前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
92 1
|
20小时前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
5 0
|
6天前
|
存储 SQL 关系型数据库
【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-02
【4月更文挑战第7天】数据库通过视图实现事务隔离,不同隔离级别如读未提交、读已提交、可重复读和串行化采用不同策略。以可重复读为例,MySQL使用多版本并发控制(MVCC),每个事务有其独立的视图。回滚日志在无更早视图时被删除。长事务可能导致大量存储占用,应避免。事务启动可显式用`begin`或设置`autocommit=0`,但后者可能意外开启长事务。建议使用`autocommit=1`并显式管理事务,若需减少交互,可使用`commit work and chain`。
27 5
|
8天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
15 1
|
1月前
|
关系型数据库 MySQL Linux
【Linux】在Linux上安装MySQL数据库的步骤
【Linux】在Linux上安装MySQL数据库的步骤
116 0
|
1月前
|
关系型数据库 MySQL Linux
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
【VMware安装+centos 7Linux系统+MySQL安装】——在Linux系统中安装MySQL步骤,以及遇见的各种问题(如:vm两个虚拟网卡消失、vm网络适配器有感叹号等等)
177 0
|
1月前
|
关系型数据库 MySQL Linux
Linux服务器安装MySQL
Linux服务器安装MySQL
|
1月前
|
Python Windows
解决Python下pip install MySQL-python失败的问题
解决Python下pip install MySQL-python失败的问题
19 0
|
2月前
|
Linux