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 *
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引擎方法
Linux环境编译安装Mysql以及PHP中文乱码解决相关推荐
- Linux环境编译安装Mysql以及补装innodb引擎方法
mysql安装 5.6以后可能会收费,所以选择5.1 以下从台湾中山大学镜像下载 1.首先要安装C++编译环境 # yum install gcc-c++ 2.下载解压 # wget http:// ...
- Linux环境下邮件主题、发件人中文乱码解决
加入mail-1.4.jar javaEE6 以下需要依赖包activation-1.0.2.jar 使用MimeUtility.encodeText()方法 例如:emailVo.setYjzt(M ...
- Linux环境下安装MySQL(源码安装)
Linux环境下安装MySQL(源码安装) 1.事先从官网/国内镜像站点中下载源码安装包,上传至服务器: 2.安装开发工具和开发包(从5.5开始使用cmake编译) 3.创建用户和组 4.编译安装My ...
- Linux下编译安装MySQL安装
Linux下编译安装MySQL安装 博主邮箱www.zzher@foxmail.com qq:1102471911 编译安装MySQL 准备工作: 1.获得以下所需的源代码包,并存放在/usr/l ...
- linux mysql插入中文乱码_解决Linux下Tomcat向MySQL插入数据中文乱码问题
一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一 直接在linux上面使用 ...
- Linux之编译安装MySQL
实验环境 VMware版本:11.1 Linux版本:CentOS release 6.9 (Final) 最小化安装 MySQL版本:mysql-5.6.13 CMake版本:cmake-2.8.8 ...
- Linux下编译安装Mysql简单步骤
常规方式编译安装MySQL时,适合用第一条最正宗的MySQL产品线5.2及以前版本: 所谓常规方式编译安装MySQL就是延续早期MySQL的3部曲安装方式,即./configure;make;make ...
- Linux环境编译安装OpenJDK
Centos6.5 AMD64位机器 Java的源码是C,C++和Java实现的,所以还需要有一个安装好的java建议选OracleJDK参考文末 安装OracleJDK Linux环境安装卸载JDK ...
- linux直接联网安装mysql,linux环境下安装mysql
Linux下安装mysql Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,很多时候按照教程也没有能够安装成功, ...
最新文章
- Spring与Struts1的集成
- 禁止冒名顶替Exchange用户发送邮件
- Linq to XML的练习
- 快速理解shopex模板机制经验教程(一)
- Hadoop 03_核心:读写流程
- python字典与json转换_python字典与json转换的方法总结
- 1000瓶药水,1瓶有毒药,几只小白鼠能够找出毒药
- 我的成长笔记20210325(一天写了247条用例)
- try except 异常捕获的方法、断言的使用
- Project configuration is not up-to-date with pom.xml. Run Maven-Update Project or use Quick Fix
- python爬取京东商品图片_爬取京东和天猫下载商品图片
- 编写一个JSP页面,显示大写英文字母表
- wps文字如何取消英文首字母输入时自动变大写
- 计算机语言的魅力,四年级语文下册《语言的魅力》说课稿
- 靠贴牌飞利浦冲击上市,德尔玛的自有品牌又该如何“起跳”?
- 全球顶尖公司的七大设计理念
- unraid应用_套娃自动备份unraid系统u盘_NAS存储
- .net 导出excel_C# 导出 Excel 的 6 种简单方法!你会几种?
- 用hadoop计算PI值
- 单片机期末实训---- 密码锁和交通灯
热门文章
- linux多用户怎么表示,Linux如何建立多用户
- php for等边三角形,利用js实现等腰三角形
- oracle 取系统当前年份_oracle查询以当前年份为准的近些年数据
- npm 安装less插件_2020 VSCode插件推荐
- 【python语言基础】疑难点整理1
- Linux(Nginx)+Java SpringBoot视频微服务搭建
- Python+OpenCV图像处理实验
- P2114 [NOI2014]起床困难综合症
- python爬虫一般格式
- c语言字符串 s,c – printf格式字符串中“% – *.* s”的含义是什么