目录
mysql示例employees数据库
首页 php教程 php手册 Linux环境编译安装Mysql以及PHP中文乱码解决

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

Jun 06, 2016 pm 07:54 PM
linux mysql php 中文 安装 环境 编译

mysql安装 5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 要安装C编译环境 # yum install gcc- c 下载解压 # 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

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

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


要安装C++编译环境

# yum install gcc-c++


下载解压

# 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


创建用户

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


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

编译安装
# 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

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

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

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

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

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

系统已经提示你设置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 *

------------------------------------------------------------------------------
调整lib库路径
由于MySQL安装到了非标准的路径中,所以需要将MySQL的库文件路径加入到系统库文件路径中去。
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
------------------------------------------------------------------------------
将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
------------------------------------------------------------------------------
启动
# /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


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


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

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

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

登陆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;


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

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

修改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;

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

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那个用户名密码,那个默认只能本机访问

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

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

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

mysql是系统库不能删

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

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


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

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

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

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

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

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

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

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

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>
登录后复制
Linux环境编译安装Mysql以及PHP中文乱码解决

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何解决Linux终端中查看Python版本时遇到的权限问题? 如何解决Linux终端中查看Python版本时遇到的权限问题? Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? 在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? Apr 01, 2025 pm 03:06 PM

在Docker环境中使用PECL安装扩展时报错的原因及解决方法在使用Docker环境时,我们常常会遇到一些令人头疼的问�...

PHP连接MySQL后页面空白,die()函数无效是什么原因? PHP连接MySQL后页面空白,die()函数无效是什么原因? Apr 01, 2025 pm 03:03 PM

PHP连接MySQL后页面空白,die()函数失效的原因分析在学习PHP和MySQL数据库连接的过程中,常常会遇到一些让人困惑...

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

如何在LAMP架构下高效整合Node.js或Python服务? 如何在LAMP架构下高效整合Node.js或Python服务? Apr 01, 2025 pm 02:48 PM

在LAMP架构下整合Node.js或Python服务许多网站开发者都面临这样的问题:已有的LAMP(Linux Apache MySQL PHP)架构网站需要...

如何在macOS上将apscheduler定时任务配置为服务? 如何在macOS上将apscheduler定时任务配置为服务? Apr 01, 2025 pm 06:09 PM

在macOS上将apscheduler定时任务配置为服务在macOS平台上,如果你想将apscheduler定时任务配置为一个服务,类似于ngin...

Linux系统自带Python解释器能删除吗? Linux系统自带Python解释器能删除吗? Apr 02, 2025 am 07:00 AM

关于Linux系统自带Python解释器的删除问题许多Linux发行版在安装时会预装Python解释器,它并非通过软件包管理器�...

See all articles