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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

菜鸟学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
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
160 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
1060 67
|
16天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
94 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
45 3
|
2月前
|
Java 关系型数据库 MySQL
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
这篇文章是关于自动化测试项目实战笔记,涵盖了JDK、Tomcat、MySQL、Jpress环境的安装和搭建过程,以及测试用例和常见问题总结。
54 1
自动化测试项目实战笔记(一):JDK、Tomcat、MySQL、Jpress环境安装和搭建
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
110 3
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
110 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
285 1
|
2月前
|
关系型数据库 MySQL Linux
Linux系统绿色安装MySQL 8.0.39
Linux系统绿色安装MySQL 8.0.39
下一篇
DataWorks