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

Linux环境编译安装Mysql以及PHP中文乱码解决

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;



如何整个数据库使用innodb引擎呢?

修改/etc/my.cnf文件

# vim /etc/my.cnf

[mysqld] 后加入
default-storage-engine=InnoDB

同时注释下面和inndb相关的#等

innodb_data_home_dir = /usr/local/mysql/var
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/var

重启mysql



修改表引擎方法
alter table table_name engine=innodb;


默认的隔离级别

select @@global.tx_isolation,@@tx_isolation;


更改会话级的隔离级别
set session tx_isolation='read-uncommitted';

更改系统级的隔离级别 
set global tx_isolation='read-uncommitted'; 

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

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引擎方法

相关文章:

mysql noinstall_windows mysql noinstall

最近在想做mysql 主,从备份.在一台windows下安装多个mysql server , 发现用安装版的会覆盖前一安装程序,所以就用noinstall版本的mysql server,在此记录下安装过程的步骤.可主,从备份最终没能跑起来........这只是其中方法之一而已windows 下安装mysql-noinstall so easy!!!步骤…

[十九]JavaIO之PipedReader 和 PipedWriter

功能简介还记得PipedInputStream 和 PipedOutputStream么 我们之前是这么说的: 使用管道通信时&#xff0c;必须将PipedOutputStream和PipedInputStream配套使用 大致流程&#xff1a; 我们在线程A中向PipedOutputStream中写入数据&#xff0c;这些数据会自动的发送到与PipedO…

Linux环境HBase安装与使用

原文出自本人另一个Linux博客 http://blog.csdn.net/unix21/article/details/18776073 Linux环境&#xff1a;CentOS6.5 HBase版本&#xff1a;hbase-0.94.16 HBase官网&#xff1a;http://hbase.apache.org 1.下载解压安装文件 # wget http://mirror.bit.edu.cn/apache/hbase/…

Oracle定时执行存储过程

首先查看SQL> show parameter job NAME TYPE VALUE------------------------------------ ----------- ------------------------------job_queue_processes integer 10如果值是 0 需要修改&#xff08;如果为…

mysql8.0取消授权_mysql8创建用户、删除用户、授权、取消授权

注意&#xff0c;以下命令均在数据库mysql中操作use mysql;mysql有密码设置规范,这里修改仅密码长度为4位,仅本次登录有效set global validate_password.policy0;set global validate_password.length4;创建用户格式CREATE USER usernamehost IDENTIFIED WITH mysql_native_pas…

Azure编配器简化有状态无服务器工作流的创建

Azure Durable Functions旨在通过引入编排器function概念来定义更复杂的工作流&#xff0c;以此来扩展无服务器计算范式。如果你曾经想过要使用它们&#xff0c;微软刚刚发布了一个示例&#xff0c;帮助开发人员开始他们的无服务器计算和编排器function之旅。\\Azure Functions…

ZooKeeper集群环境安装与配置

原文&#xff1a;出自本人的Linux博客http://blog.csdn.net/unix21/ ZooKeeper版本&#xff1a;3.4.5 约定&#xff1a;3台虚拟机 前提&#xff1a;需要安装JDK&#xff0c;关于Linux环境JDK安装配置参考我的另一帖Linux环境安装卸载JDK以及安装Tomcat和发布Java的web程序ZooKe…

thinkphp5 mysql长连接_tp5(thinkPHP5)框架连接数据库的方法示例

本文实例讲述了thinkPHP5框架连接数据库的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;1、配置文件目录 tp5applicationdatabase.php通过配置文件来连接。。也可以通过方法链接在控制器里方法链接数据库 &#xff1b;查询时写法 和使用系统的DB类方法略有差异/…

学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程

Linux Shell脚本教程&#xff1a;30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/转载于:https://www.cnblogs.com/pegasus923/p/5304025.html

tomcat的startup.bat闪退问题解决

从官网下载一个免安装的tomcat&#xff0c;我把它解压在E盘&#xff0c;配置了环境变量&#xff1a;CATALINA_HOME、CATALINA_BASE、TOMCAT_HOME 为 tomcat的解压路径 进入解压tomcat的bin目录&#xff0c;执行startup.bat&#xff0c;出现闪退。 然后winR 输入cmd 进入解压tom…

使用Netbeans创建java Web项目

&#xfeff;&#xfeff;使用Netbeans创建java Web项目需要先搭建JDK参考&#xff1a; Java开发环境的搭建以及使用eclipse创建项目 Linux环境安装卸载JDK1.安装Tomcat 去官网下载最新的Tomcat:http://tomcat.apache.org/ 目前最新的windows环境的Tomcat是 http://mirrors.hus…

Linux内核设计第五周学习总结 分析system_call中断处理过程

陈巧然原创作品 转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000使用gdb跟踪分析一个系统调用中断处理过程&#xff0c;分析系统调用从system_call开始到iret结束之间的整个过程。 实验过程&#xff1a; 登陆实验楼虚拟机http://w…

mysql data ibdata1_database - 如何在MySQL中收缩/清除ibdata1文件

database - 如何在MySQL中收缩/清除ibdata1文件我在localhost中使用MySQL作为在R中执行统计的“查询工具”&#xff0c;也就是说&#xff0c;每次运行R脚本时&#xff0c;我创建一个新数据库(A)&#xff0c;创建一个新表(B)&#xff0c;将数据导入B &#xff0c;提交查询以获得…

MySQL学习----各种字符的长度总结

数字型 类型大小范围&#xff08;有符号&#xff09;范围&#xff08;无符号&#xff09;用途TINYINT1 字节(-128&#xff0c;127)(0&#xff0c;255)小整数值SMALLINT2 字节(-32 768&#xff0c;32 767)(0&#xff0c;65 535)大整数值MEDIUMINT3 字节(-8 388 608&#xff0c;8…

分布式消息队列Kafka集群安装

kafka是LinkedIn开发并开源的一个分布式MQ系统&#xff0c;现在是Apache的一个孵化项目。在它的主页描述kafka为一个高吞吐量的分布式&#xff08;能将消息分散到不同的节点上&#xff09;MQ。在这片博文中&#xff0c;作者简单提到了开发kafka而不选择已有MQ系统的原因。两个原…

[na]pc加入域认证细节

这也是以前好奇,因为学生时候,经常机房上网, 对一些譬如.. 现在看来很low了. 是小作坊式的技术, 真正上不了台面的.扛不住生产的压力. ftp共享计算机统一管理等无盘/网克等特别好奇 计算机组织的两种形式 加入办公网络里有200多台pc,如果各个独立的上网互不干扰. 这种也挺方便,…

react 树形菜单_关于React 使用antd组件递归实现左侧菜单导航树(MenusTree)的示例...

一、菜单组件Demo这里本人采用的是蚂蚁金服(antd)组件库里的{Menu}组件写的一个左侧菜单树的小Demo(整套开发环境是ReactReduxwebpack)import React from react;import { Menu, Icon } from antd;import {WeaScroll} from ecCom;import {bindActionCreators} from redux;import…

SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

SQL 先说点废话&#xff0c;很久没发文了&#xff0c;整理了下自己当时入门 SQL 的笔记&#xff0c;无论用于入门&#xff0c;回顾&#xff0c;参考查询&#xff0c;应该都是有一定价值的&#xff0c;可以按照目录各取所需。SQL数据库有很多&#xff0c;MySQL是一种&#xff0c…

MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet

1.安装准备 1).下载安装MyEclipse2014&#xff0c;这已经是最新版本。2).下载Tomcat 官网&#xff1a;http://tomcat.apache.org/ 我们选择8.0&#xff1a; http://tomcat.apache.org/download-80.cgi 在windows下选择64位解压版&#xff1a;http://mirror.bit.edu.cn/apache/t…

[转]Linux 的多线程编程的高效开发经验

Linux 平台上的多线程程序开发相对应其他平台&#xff08;比如 Windows&#xff09;的多线程 API 有一些细微和隐晦的差别。不注意这些 Linux 上的一些开发陷阱&#xff0c;常常会导致程序问题不穷&#xff0c;死锁不断。本文中我们从 5 个方面总结出 Linux 多线程编程上的问题…

mac webpack 版本_晓前端周刊 第48期:EMP面向未来微前端方案正式开源了!玩转 webpack,使你的打包速度提升 90%;...

业界动态苹果最大杀招&#xff1a;iPhone App 已能在电脑运行近日网友反馈&#xff0c;苹果 App Store 中大量应用在兼容性一栏中显示&#xff1a;已支持运行 macOS 11(及以上版本)的 Mac 电脑。这意味着&#xff0c;iPhone 中的应用&#xff0c;已可以在 Mac 电脑中运行。并非…

LNMP安装配置

LNMP安装配置 目录bin&#xff1a;存放普通用户可执行命令sbin:存放超级用户可执行命令which iptables &#xff1a; 查看boot目录&#xff1a;存放系统启动所需&#xff08;内核&#xff0c;映像&#xff09;dev&#xff1a;设备文件&#xff08;鼠标&#xff0c;键盘...等外部…

效果广告点击率预估实践:在线学习

效果广告点击率预估实践&#xff1a;在线学习 原创 2016-03-24 腾讯大数据 腾讯大数据1.引言 技术钻研如逆水行舟&#xff0c;不进则退。公司的广告业务发展非常迅猛&#xff0c;有目共睹&#xff0c;激烈的外部竞争和客户越来越高的期望&#xff0c;都要求我们的技术不断进步&…

Redis安装与调试

&#xfeff;&#xfeff;Redis安装与调试 Redis安装与调试linux版本&#xff1a;64位CentOS 6.5 Redis版本&#xff1a;2.8.17 (更新到2014年10月31日) Redis官网&#xff1a;http://redis.io/ Redis常用命令&#xff1a;http://redis.io/commands 1.安装Redis # wget http:…

lumen mysql 事务_简单几部搞定laravel/lumen跨库操作

1.跨库数据库配置在网站跟目录下的config文件中增加database.php作为数据库配置文件。配置如下&#xff1a;//当前默认数据库mysql > [driver > mysql,host > env(DB_HOST, localhost),port > env(DB_PORT, 3306),database > env(DB_DATABASE, forge),username …

springMVC出现HTTP Status 405 - Request method 'GET' not supported错误的解决方法

今天在写一个简单的springMVC的表单请求处理时&#xff0c;出现了这个问题。我的form表单用的是post方法提交&#xff0c;并没有使用get方法&#xff0c;出现这个问题时&#xff0c;笔者可谓是一脸懵逼。这是form表单&#xff1a;这是对post请求的处理方法&#xff1a;检查了半…

从Nginx源码谈大小写字符转化的最高效代码以及ASCII码表的科学

说起大小写字母转换&#xff0c;大家很容易想起系统函数是不是&#xff0c;几乎所有的编程语言都提供了这种转换函数&#xff0c;但是你有没有想过这背后是怎么实现的&#xff1f; 让你写怎么实现&#xff1f;我们都知道Nginx是目前用的最多的Http服务器&#xff0c;那么他的代…

常回“家”看看

近一年来很少写博客了&#xff0c;原因很多&#xff0c;一言难尽&#xff01;感觉人在每个阶段思想都在不断发生变化&#xff0c;往往某一时期认定的事情会在另外一个阶段发生自我否定或者是改变&#xff01;之前认为自己也许不再走技术路线了&#xff0c;所以把精力都放在了其…

python launcher怎么使用_QMUI实战(一)—为何我们要使用 LauncherActivity?

QMUI 2 发布了&#xff0c;但是里面换肤等相关的很多东西&#xff0c;如果不讲&#xff0c;那么很多人估计就只能复制粘贴下 QMUIDemo 的代码&#xff0c;而并不能用好 QMUI&#xff0c; 或者是通过 QMUI 来提升自己的 UI 开发能力&#xff0c;毕竟现在很多 Android 开发都是轻…

CoAP 协议解析说明(转)

CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求&#xff08;文本格式&#xff09; POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler Host: getman.cn Content-Length: 9{temp:22}HTTP响应&#xff08;文本格式&#xff09; HTTP/1.1 200 OK Server: NWSs Da…