小白博客 Xiaobai___详细教你如何在Linux环境下安装mysql数据库
需要Linux版本:centos7 64位
好,我们开始了
1、下载安装包“mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz”
# 安装依赖 yum -y install perl perl-devel autoconf
2、把下载的安装包移动到/usr/local/下。
3、解压 tar zxvf mysql -5.6.33-linux-glibc2.5-x86_64.tar.gz 4、复制解压后的mysql目录到系统的本地软件目录
cp mysql-5.6 .33 -linux-glibc2.5 -x86_64 /usr/local/mysql -r 5、添加系统mysql组和mysql用户
groupadd mysql useradd -r -g mysql -s /bin/false mysql 注意:Because the user is required only for ownership purposes, not login purposes, the useradd command uses the -r and -s /bin/false options to create a user that does not have login permissions to your server host. Omit these options if your useradd does not support them. 6、进入安装mysql软件目录,修改目录拥有者为mysql用户
cd mysql/ chown -R mysql :mysql ./ 7、安装数据库,此处可能出现错误。
./scripts/mysql_install_db --user=mysq FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
Data::Dumper
#解决方法: yum install -y perl-Data-Dumper 8、修改当前目录拥有者为root用户
chown -R root:root ./ 9、修改当前data目录拥有者为mysql用户
chown -R mysql :mysql data
到此数据库安装完毕 了
10、启动mysql服务和添加开机启动mysql服务
添加开机启动,把启动脚本放到开机初始化目录。
cp support-files/mysql .server /etc/init.d/mysql 11、启动mysql服务
#创建缺少的文件夹 mkdir /var/log/mariadb service mysql start
正常提示信息: Starting MySQL. SUCCESS!
12、把mysql客户端放到默认路径
ln -s /usr/local/mysql /bin/mysql /usr/local/bin/mysql 注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql
通过使用 mysql -uroot -p 连接数据库(默认数据库的root用户没有密码,这个需要设置一个密码)。
错误信息 :ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法 : 打开/etc/my.cnf,看看里面配置的socket位置是什么目录。“socket=/var/lib/mysql/mysql.sock”
路径和“/tmp/mysql.sock”不一致。建立一个软连接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
到这里任务算是完成了。之后就可以创建数据库用户,然后使用数据库了。
权限控制
1、去除匿名用户
# 测试匿名用户登录
mysql
-ux3
可以看到匿名用户可以登录,具有information_schema和test库的相关权限。
# 删除匿名用户,使用root用户登录数据库
delete
from
mysql.user where
User=''
;
flush privileges;
再次测试匿名用户登录
- Python标准库03 路径与文件 (os.path包, glob包)
- AI人工智能时代已经到来 “北斗即时判”实现纯语音交互
- 剑指OFFER之链表中倒数第k个节点(九度OJ1517)
- 用Qt写软件系列四:定制个性化系统托盘菜单
- Linux简介与厂商版本
- 用Qt写软件系列三:一个简单的系统工具之界面美化
- VS编译链接时错误(Error Link2005)的解决方法
- HttpClient使用心得
- 剑指OFFER之重建二叉树(九度OJ1385)
- 记录visual Studio使用过程中的两个问题
- 剑指OFFER之二维数组中的查找(九度OJ1384)
- Python标准库02 时间与日期 (time, datetime包)
- PR&AE插件开发遇到的一个坑
- 一个简单的inno setup模板
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 毫不留情地揭开 ArrayList 和 LinkedList 之间的神秘面纱
- 关于void QProcess::start参数问题的解决
- Python格式化输出
- 多线程 - 生产者消费者模式
- TCP的三次握手和四次挥手
- Springboot异常处理
- Excel实战技巧84: 让形状生动起来
- 利用Python进行组合数计算
- Docker下解决mysql出现"the table is full"的问题
- unity3d 5.0中Renderer后面没有了material
- 在windows下检查应用程序是否为兼容模式启动及使用Qt输出系统信息
- Qt5.5.1版本中QString().arg()和qss在处理路径及文件名需要注意的地方
- Typecho将Gravatar头像改为QQ头像
- python socket 简单示例
- 深入了解C++虚函数