当前位置: 首页 > 编程日记 > 正文

Linux环境编译安装Mysql以及补装innodb引擎方法

mysql安装 5.6以后可能会收费,所以选择5.1

以下从台湾中山大学镜像下载


1.首先要安装C++编译环境

# yum install gcc-c++


2.下载解压

# wget http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz
# tar zxvf mysql-5.1.73.tar.gz
# cd mysql-5.1.73


3.创建用户

运行MySQL数据库的系统用户、组
/sbin/nologin只是不允许系统login
# useradd mysql -M -s /sbin/nologin/mysql


4.预配置编译
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all

预编译成功会出现下面的提示信息:



如果缺少ncurses安装包会出现提示:

configure: error: No curses/termcap library found

解决办法:

下载安装相应软件包

一、如果你的系统是RedHat系列:

#yum list|grep ncurses

#yum -y install ncurses-devel

#yum install ncurses-devel

二、如果你的系统是Ubuntu或Debian:

#apt-cache search ncurses

#apt-get install libncurses5-dev


5.编译安装
# make && make install

------------------------------------------------------------------------------

如果报错 mysql: Character set 'gbk' is not a compiled character set and is not specified in the '/usr/local/mysql/share/mysql/charsets/Index.xml' file

就是因为configure的时候没有指定charset可以按如下这样这样

# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-collation=gbk_chinese_ci
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all
或者#make WITH_CHARSET=gbk BUILD_STATIC=yes install
或者#make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_COLLATION=gbk_chinese_ci BUILD_STATIC=yes install

------------------------------------------------------------------------------

6.建立配置文件
在源码包目录中的support-files文件夹下,提供了多个MySQL服务器的配置文件样例文件,
分别适用于不同负载的数据库服务器,一般选择my-medium.cnf文件即可,适用于中等负载的数据库。
# cp support-files/my-medium.cnf /etc/my.cnf

------------------------------------------------------------------------------

7.初始化数据库
以mysql用户的身份执行mysql_install_db脚本,初始化数据库。修改相关目录所有权,以便mysql用户可以读写数据库。
# /usr/local/mysql/bin/mysql_install_db --user=mysql

系统已经提示你设置mysql账号以及密码的方式:

To do so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

------------------------------------------------------------------------------

设置权限

# chown -R root:mysql /usr/local/mysql
# chown -R root:mysql /usr/local/mysql/var

/usr/local/mysql下
# chown -R mysql:mysql *

------------------------------------------------------------------------------
8.调整lib库路径
由于MySQL安装到了非标准的路径中,所以需要将MySQL的库文件路径加入到系统库文件路径中去。
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
------------------------------------------------------------------------------
9.将mysqld添加为系统服务

在MySQL源码包的suppory-files文件夹下,mysql.server文件可以用来作为mysqld服务的启动脚本。
# cp /usr/mysql-5.1.73/support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
------------------------------------------------------------------------------
10.启动MySQL
# /etc/init.d/mysqld start
或者如果已经加入系统服务
# service mysqld start
或者
# /usr/local/mysql/bin/mysqld_safe --user=mysql &

启动报错:
启动mysql 报错,,Starting MySQL.Manager of pid-file quit without updating fi[失败]

出现这个问题,主要是,因为本服务器原来已经安装过mysql 应该是没有卸载干净,所以会报错.

第一,先删除rm -rf /var/lib/mysql,然后重新初始化usr/local/mysql/bin/mysql_install_db --user=mysql

第二, 看是否已经运行数据库进程了,ps -a|grep mysql
# service mysqld start
Starting MySQL.Manager of pid-file quit without updating file. [失败]
# ps -a|grep mysql
# kill -9 PID
#  ps -a|grep mysql
#  kill -9 PID
# service mysqld start
第三 权限问题
/usr/local/mysql下
# chown -R mysql:mysql *

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
其实网上大家问的最多的都是整个问题,说什么链接不到mysqld.sock,其实大家不妨看看mysql的错误日志就明白怎么回事,我这里的错误日志是在
/var/lib/mysql/*.err 你会发现mysql只所以不能启动,是因为/var/lib/mysql的权限不允许mysql服务访问,英文mysql默认是调用mysql用户来启动服务的,好了,既然知道是什么原因找到不能启动,那就简单了。我们只要
chown -R mysql:mysql /var/lib/mysql 就行,如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题。
如果大家还是不能启动不了的话,那就用我的比较繁琐的权限的设置,反正我每次都是这么做的,一般不会有问题,见下:
chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a

------------------------------------------------------------------------------
11.查看状态
# /etc/rc.d/init.d/mysqld status


12.停止
# /etc/rc.d/init.d/mysqld stop
或者
# /usr/bin/mysqladmin -u root -p shutdown
------------------------------------------------------------------------------

13.将mysql加入到系统变量path中
将/usr/local/mysql/bin 加入到path中,这样在shell里就可以运行mysql相关的命令。
# vi /etc/profile
加入
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

------------------------------------------------------------------------------

14.登陆mysql
如果之前增加过环境变量直接
# mysql -u root -p
否则全路径
# /usr/local/mysql/bin/mysql -u root -p
Enter password: 密码    默认是空密码
显示所有的数据库
mysql> show databases;
选择你所创建的数据库
mysql> USE 数据库名
显示所选数据库的所有表
mysql> show tables;
退出
mysql> exit;或者mysql> quit;



------------------------------------------------------------------------------

15.修改root账号为本机外都可以访问
mysql>use mysql;

添加用户
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

改密码

mysql>update user set Password = password('123456') where User='root';
mysql>flush privileges;
mysql>exit;

------------------------------------------------------------------------------

16.Navicat连接mysql

Navicat Premium和NavicatMySQL都可以

Navicat 连接错误:
Mysql:is not allowed to connect to this MySQL server
如果你想连接你的mysql的时候发生这个错误:

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
解决方法:
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
mysql>flush privileges;


如果前面没有做修改root的密码或者你自己设置为空,那么要用空密码连接。切记,不能用之前设置的root12345那个用户名密码,那个默认只能本机访问


mysql这个数据库的数据表user,可以看到有好几个root账号,对应本机local和外机%

mysql是系统库不能删


图形化的界面还是比在命令行快多了。


Navicat for mysql中文保存出现乱码的解决办法

1.右键数据库里链接,选择“链接属性”

2.切换到“高级”选项卡下 把“使用mysql字符集”前面的“勾选”去掉

如果不这样设置就会出现输入中文,保存就是“???”


17.Mysql补装innodb引擎方法

先查看当前引擎

mysql> show engines;


没有innodb引擎。


然后需要确定,在mysql的'plugin_dir'下有ha_innodb_plugin.so和ha_innodb.so两个文件
查询'plugin_dir'的路径可以用以下命令
mysql> show variables like 'plugin_dir';



接下来就是在mysql命令行安装一下
mysql> INSTALL PLUGIN InnoDB SONAME 'ha_innodb.so';


再用show engines查一下就看到安装好了innodb引擎

mysql> show engines;


=======================================================

18.PHP连接mysql

中文不乱码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="zh-CN" lang="zh-CN">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gbk'/> 
<title>PHP输出表格</title>
</head>
<body>
输出:</br>
<?php 
//header("Content-Type: text/html; charset=gbk");
$server_name="localhost:3306"; //数据库服务器名称 
$username="root"; // 连接数据库用户名 
$password="123456"; // 连接数据库密码 
$mysql_database="test"; // 数据库的名字 // 连接到数据库 
$conn=mysql_connect($server_name, $username, $password); mysql_query("SET NAMES GBK");
//mysql_query("set names utf8");
//mysql_query("SET NAMES GB2312");
// 从表中提取信息的sql语句 
$strsql="select * from user_info"; //执行sql查询 
//mysql_select_db($mysql_database,$conn);
//$result=mysql_query($sql);
$result=mysql_db_query($mysql_database, $strsql, $conn); // 获取查询结果 
// 定位到第一条记录 
mysql_data_seek($result, 0); echo "<table border=\"1\">";
// 循环取出记录 
while ($row=mysql_fetch_row($result)) { 
echo "<tr>"; 
for ($i=0; $i<mysql_num_fields($result); $i++ ) { 
echo "<td>".$row[$i]."</td>"; 
}
echo "</tr>"; 
} 
echo "</table>";
// 释放资源
mysql_free_result($result); // 关闭连接 
mysql_close($conn);   
?>  
</body>
</html>


mysql示例employees数据库

------------------------------------------------------------------------------


参考:

mysql问题解决
在linux下安装mysql
MySQL数据库的安装与启动
mysqldump: Character set 'gbk' is not a compiled character set
Mysql:is not allowed to connect to this MySQL server
源码安装Mysql,补装innodb引擎方法

相关文章:

Python 炫技操作:合并字典的七种方法

来源 | Python编程时光&#xff08;ID: Cool-Python&#xff09;Python 语言里有许多&#xff08;而且是越来越多&#xff09;的高级特性&#xff0c;是 Python 发烧友们非常喜欢的。在这些人的眼里&#xff0c;能够写出那些一般开发者看不懂的高级特性&#xff0c;就是高手&am…

shell脚本编程基础(1)及RAID阵列

shell脚本&#xff1a;Linux从底层到上层的系统架构&#xff1a;硬件-->内核-->库(lib)-->shell-->用户。shell既是一种命令语言&#xff0c;也是程序设计语言&#xff08;shell脚本&#xff09;&#xff0c;作为一种命令语言&#xff0c;它提供了用户与内核的交互…

freemarker基本语法及实例

EG.一个对象BOOK 1.输出 ${book.name} 空值判断&#xff1a;${book.name?if_exists }, ${book.name?default(‘xxx’)}//默认值xxx ${ book.name!"xxx"}//默认值xxx 日期格式&#xff1a;${book.date?string(yyyy-MM-dd)} 数字格式&#xff1a;${boo…

前百度主任架构师创业,两年融资千万美元,他说AI新药研发将迎来黄金十年...

「AI技术生态论」 人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分。通过对AI生态专家、创业者、行业KOL的访谈&#xff0c;反映其对于行业的思考、未来趋势的判断、技术的实践&#xff0c;以及成长的经历。2020年&#xff0c;CSDN将对1000人物进行访谈&#xff0c;形…

Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序

Linux环境&#xff1a;CentOS7.2 一.安装JDK 安装好的CentOS会自带OpenJdk&#xff0c;最好还是先卸载系统自带的JDK&#xff0c;然后自己重新去Oracle网站下载最新的JDK安装。 1.卸载系统自带的JDK 查看java信息 # java -version 查看JDK # rpm -qa | grep java 或者 还…

(转)详解css3弹性盒模型(Flexbox)

今天刚学了css3的弹性盒模型&#xff0c;这是一个可以让你告别浮动、完美实现垂直水平居中的新特性。 Flexbox是布局模块&#xff0c;而不是一个简单的属性&#xff0c;它包含父元素和子元素的属性。 Flexbox布局的主体思想是似的元素可以改变大小以适应可用空间&#xff0c;当…

Java开发环境的搭建以及使用eclipse创建项目

一、Java 开发环境的搭建 这里主要说windows环境下怎么配置Java环境。如果是Linux环境参考本博客另一篇文章即可&#xff1a; Linux环境安装卸载JDK 1.首先安装JDK java的SDK简称JDK。 去官网下载最新的JDK即可&#xff1a; http://www.oracle.com/technetwork/java/javase…

​MMIT冠军方案 | 用于行为识别的时间交错网络,商汤公开视频理解代码库

作者 | 商汤出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;本文主要介绍三个部分&#xff1a;一个高效的SOTA视频特征提取网络TIN&#xff0c;发表于AAAI2020ICCV19 MMIT多标签视频理解竞赛冠军方案&#xff0c;基于TIN和SlowFast一个基于PyTorch&#xff0c;包含大…

MySQL的主从服务器配置

MySQL的主从服务器配置常见开源数据库有&#xff1a;MySQL&#xff0c;PostgreSQL&#xff0c;SQLite等&#xff0c;商业性质的&#xff1a;Oracle&#xff0c;Sql Server&#xff0c;DB2&#xff0c;Sybase&#xff0c;Infomix其中&#xff0c;Oracle的版本有Oracle 11g,Oracl…

Anaconda中安装Orange3脚本-完整版

2019独角兽企业重金招聘Python工程师标准>>> #Anaconda中安装Orange3脚本&#xff0c;完整版。包括插件的安装&#xff0c;在脚本中一次完成。 sudo apt-get update sudo apt-get -y install git python-pip python-virtualenv python-qt4-dev python3-pyqt4 libqt…

使用eclipse创建Struts2项目

eclipse版本&#xff1a; Kepler Service Release 1 http://www.eclipse.org/downloads/ struts版本&#xff1a;2.3.16 http://struts.apache.org/ 1.新建web项目 打开Eclipse&#xff0c;新建一个web项目"Struts2" 项目名字 勾选 web.xml选项 建好的…

8、进程通信-匿名管道

匿名管道 一个单向&#xff0c;未命名的管道&#xff0c;通常用来在一个父进程和一个子进程间传输数据。只能实现本地机器上两个进程间的通信&#xff0c;而不能实现跨网络的通信。 BOOL CreatePipe( PHANDLE hReadPipe, // read handle PHANDLE hWriteP…

Enhanced-RCNN: 一种高效的比较句子相似性的方法 |​WWW 2020

作者 | 彭爽出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;国际顶级会议WWW2020将于4月20日至24日举行。始于1994年的WWW会议&#xff0c;主要讨论有关Web的发展&#xff0c;其相关技术的标准化以及这些技术对社会和文化的影响&#xff0c;每年有大批的学者、研究人…

直接可以拿去用的正则验证表达式

直接可以拿去用的正则验证表达式为了方便自己也方便初学的学弟们&#xff0c;自己总结了网上的众多正则验证式&#xff0c;现分享给大家&#xff0c;可以直接拿去用。一、校验数字的1 数字&#xff1a;^[0-9]*$2 n位的数字&#xff1a;^\d{n}$3 至少n位的数字&#xff1a;^\d{n…

家庭局域网开启AP隔离利用无线路由器互连

一开始可以上网&#xff0c;可以ping网关192.168.1.1&#xff0c;但是几台电脑之间就是不能互ping。 其实&#xff0c;真实的原因就是没有开启无线路由器的AP隔离。 在浏览器中输入192.168.1.1进入路由搜索一般用户名密码都是admin&#xff0c;具体请参见自己路由的说明书 操…

通过 Python 代码实现时间序列数据的统计学预测模型

来源 | DeepHub IMBA封图 | CSDN 付费下载于视觉中国 在本篇中&#xff0c;我们将展示使用 Python 统计学模型进行时间序列数据分析。 目标是&#xff1a;根据两年以上的每日广告支出历史数据&#xff0c;提前预测两个月的广告支出金额。原始数据&#xff1a;2017-01-01 到 201…

神色洋溢的 域名背后的故事

前短时间&#xff0c;我刚申请一个域名&#xff0c;好的顶级域名都被被人一拥而上的都强去了&#xff0c;我只好找那些申请好的用户买呀&#xff0c;这叫炒作&#xff0c;就是这样的抄起来的。你说平常一个也就100左右就搞定&#xff0c;可是现在要是到那票手里&#xff0c;那就…

Rust语言开发基础(六)基础语法

2019独角兽企业重金招聘Python工程师标准>>> 一、变量的定义和使用 其它常见的编程语言对变量的定义通常是通过声明类型和使用关键new来创建一个变量&#xff0c;但Rust不是&#xff0c;Rust使用关键字let。 1. 变量绑定通过let实现 fn main() { let x 5; } 2. 变量…

400 多行代码!超详细 Rasa 中文聊天机器人开发指南 | 原力计划

作者 | 无名之辈FTER责编 | 夕颜出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09;本文翻译自Rasa官方文档&#xff0c;并融合了自己的理解和项目实战&#xff0c;同时对文档中涉及到的技术点进行了一定程度的扩展&#xff0c;目的是为了更好的理解Rasa工作机制…

Linux配置SSH无密码登陆

可以使用“公钥私钥"认证的方式来进行ssh登录。 所谓 "公钥私钥"认证方式&#xff0c;就是首先在客户机上创建一对公钥和私钥&#xff0c;公钥文件&#xff1a;~/.ssh/id_rsa.pub&#xff1b; 私钥文件&#xff1a;~/.ssh/id_rsa 然后把公钥文件放到目标服务器…

Linux进程浏览器htop安装与使用

htop 是一个 Linux 下的交互式的进程浏览器&#xff0c;可以用来替换Linux下的top命令。当前具有按树状方式来查看进程&#xff0c;支持颜色主题&#xff0c;可以定制等特性。其实htop是top的加强版&#xff0c;增加了很多功能。 官网 http://hisham.hm/htop/ 下载地址http:/…

什么?神经网络还能求解高级数学方程?

来源 | 数据派 THU封图 | CSDN 付费下载于视觉中国 Facebook AI建立了第一个可以使用符号推理解决高级数学方程的AI系统。通过开发一种将复杂数学表达式表示为一种语言的新方法&#xff0c;然后将解决方案视为序列到序列的神经网络的翻译问题&#xff0c;我们构建了一个在解决积…

***和******

网络是一把双刃剑&#xff0c;它在人类社会的发展中起着越来越重要作用&#xff0c;但同时&#xff0c;网络自身的安全问题也像挥之不去的阴影时刻笼罩在人们心头。据不完全统计&#xff0c;全世界平均每 20秒钟就发生一起******事件&#xff0c;互联网上大约有20万个***网站可…

Linux监控工具dstat

dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都…

9月16号晚上,Asuka有一场关于Windows 7组策略的Webcast,欢迎兄弟们来捧场

之所以选题在组策略之一块&#xff0c;是因为Windows 7和2008 R2对于组策略有了很大的功能上的增强&#xff0c;但是很多IT人员都无法意识或者去重视这一块内容&#xff0c;所以我将从下面这3个角度去介绍这些更新。如果您正好有时间&#xff0c;那不妨来技术交流一番:)直播进入…

腾讯天衍实验室联合微众银行研发医疗联邦学习 AI利器让脑卒中预测准确率达80%

近几年&#xff0c;医疗行业正在经历一场数字化转型&#xff0c;这场基于大数据和AI技术的变革几乎改变了整个行业的方方面面&#xff0c;将“信息就是力量”这句箴言体现的淋漓尽致&#xff0c;人们对人工智能寄以厚望&#xff0c;希望它能真正深入临床一线&#xff0c;帮助医…

JavaSript模块化 AMD CMD 详解.....

模块化是指在解决某一个复杂问题或者一系列的杂糅问题时&#xff0c;依照一种分类的思维把问题进行系统性的分解以之处理。模块化是一种处理复杂系统分解为代码结构更合理&#xff0c;可维护性更高的可管理的模块的方式。可以想象一个巨大的系统代码&#xff0c;被整合优化分割…

在Eclipse中使用Maven构建Spring项目

最新版的Spring需要使用Maven构建&#xff0c;本文讲述怎么在Eclipse构建Maven项目&#xff0c;以配置Spring项目为例。 maven简单介绍 maven是构建工具&#xff0c;也是构建管理工具。ant只是构建工具&#xff0c;因为不支持生成站点功能&#xff0c;只有预处理&#xff0c;编…

Go 语言官网全新改版

2019独角兽企业重金招聘Python工程师标准>>> 前两天发现 Go 语言官网改版了&#xff0c;布局由原来的左中右变成了上中下结构&#xff0c;主色调没有变&#xff0c;整体依然保持简洁的风格。在首页添加了一个叫 Playground 的模块&#xff0c;它可以编译、运行你输入…

就在今晚 | 港科大李世玮教授问诊未来,开辟大湾区新航路

阳春三月&#xff0c;万象更新&#xff0c;2020年注定是不平凡的一年&#xff01;有激荡就会遇见变革&#xff0c;有挑战就会迎来机遇。今天总会过去&#xff0c;未来将会怎样&#xff1f;香港科大商学院内地办事处重磅推出全新升级的《袁老师访谈录》全新系列【问诊未来院长系…