shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维
前言:
linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^).
安装流程:
*). 安装mysql-server
1). 借助yum检索相关的mysql rpm包
yum search mysql
mysql-server.x86_64 正是我们想要的
2). 安装mysql-server
yum install mysql-server.x86_64 -y
默认mysql-client也安装好
3). 启动mysql服务
/etc/init.d/mysqld start
4). 管理用户
mysql -u root -p
root用户的默认密码为空
5). 添加用户权限
GRANT ALL PRIVILEGES ON <database_name>.<table_name> TO <username>@'<ip>' IDENTIFIED BY '<password>'
如图所示, 把在所有库的所有的表的所有权限赋予给(username='hiveuser', password='hivepass'), 而且登录地址不受限.
其实, 权限表, 在mysql.user表中定义
1 2 3 4 5 6 7 8 | mysql> show create table mysql.user\G; Create Table: CREATE TABLE `user` ( `Host` char ( 60 ) COLLATE utf8_bin NOT NULL DEFAULT '' , `User` char ( 16 ) COLLATE utf8_bin NOT NULL DEFAULT '' , `Password` char ( 41 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '' , # 中间省略.... PRIMARY KEY (`Host`,`User`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT= 'Users and global privileges' |
注意: PRIMARY KEY为('Host', 'User')的联合主键
用户验证, 密码为加密密码
mysql-server部署在tw-node6机器上, 在另一台及其tw-node7登录进行验证
但本地mysql client去连mysql server缺总是失败?
看来'%'并不包含本地, 需要额外的添加ip为'localhost'的才行
进行验证:
6). 进程分析
简单ps下相关进程
进程: mysqld 是真正的mysql服务进程
进程: mysqld_safe, 其实是mysqld服务进程的监控脚本, 用于启动, 并且在mysqld退出以后, 重启服务, 该角色类似于大名鼎鼎的supervise
1 2 3 4 | [root @tw -node6 ~]# file /usr/bin/mysqld_safe /usr/bin/mysqld_safe: POSIX shell script text executable [root @tw -node6 ~]# file /usr/libexec/mysqld /usr/libexec/mysqld: ELF 64 -bit LSB executable, x86- 64 , version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6 . 18 , stripped |
而/etc/init.d/mysqld就是调用/usr/bin/mysqld_safe, 从而间接启动mysqld服务的
7). 配置管理
在编辑/etc/my.cnf
1 2 3 4 5 6 7 8 9 10 | [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links= 0 [mysqld_safe] log-error=/var/log/mysqld.logskip-name-resolve pid-file=/var/run/mysqld/mysqld.pid |
这边的省略了很多配置项
比如在[mysqld]下的skip-grant-tables, 当管理员忘记帐号密码的时候, 可以借助这个来恢复.
比如在[mysqld]下的skip-name-resolve, 避免域名解析, 防止外部机器连接mysql-server后, 导致慢查询
socket=/var/lib/mysql/mysql.sock, 即mysql.sock, 用于可以借助mysql.sock来连接mysql服务
比如 mysql -S /var/lib/mysql/mysql.sock, 这样也相当的方便
posted on 2014-07-19 13:06 mumuxinfei 阅读(656) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构