日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

發(fā)布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux环境编译安装Mysql以及PHP中文乱码解决 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
mysql安裝? 5.6以后可能會收費,所以選擇5.1

以下從臺灣中山大學(xué)鏡像下載


1.首先要安裝C++編譯環(huán)境

# 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.創(chuàng)建用戶

運行MySQL數(shù)據(jù)庫的系統(tǒng)用戶、組
/sbin/nologin只是不允許系統(tǒng)login
# useradd mysql -M -s /sbin/nologin/mysql


4.預(yù)配置編譯
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-collation=gbk_chinese_ci --with-extra-charsets=all

預(yù)編譯成功會出現(xiàn)下面的提示信息:



如果缺少ncurses安裝包會出現(xiàn)提示:

configure: error: No curses/termcap library found

解決辦法:

下載安裝相應(yīng)軟件包

一、如果你的系統(tǒng)是RedHat系列:

#yum list|grep ncurses

#yum -y install ncurses-devel

#yum install ncurses-devel

?

二、如果你的系統(tǒng)是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服務(wù)器的配置文件樣例文件,
分別適用于不同負載的數(shù)據(jù)庫服務(wù)器,一般選擇my-medium.cnf文件即可,適用于中等負載的數(shù)據(jù)庫。
# cp support-files/my-medium.cnf /etc/my.cnf

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

7.初始化數(shù)據(jù)庫
以mysql用戶的身份執(zhí)行mysql_install_db腳本,初始化數(shù)據(jù)庫。修改相關(guān)目錄所有權(quán),以便mysql用戶可以讀寫數(shù)據(jù)庫。
# /usr/local/mysql/bin/mysql_install_db --user=mysql

系統(tǒng)已經(jīng)提示你設(shè)置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'

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

設(shè)置權(quán)限

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

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

------------------------------------------------------------------------------
8.調(diào)整lib庫路徑
由于MySQL安裝到了非標(biāo)準的路徑中,所以需要將MySQL的庫文件路徑加入到系統(tǒng)庫文件路徑中去。
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
------------------------------------------------------------------------------
9.將mysqld添加為系統(tǒng)服務(wù)

在MySQL源碼包的suppory-files文件夾下,mysql.server文件可以用來作為mysqld服務(wù)的啟動腳本。
# 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
或者如果已經(jīng)加入系統(tǒng)服務(wù)
# service mysqld start
或者
# /usr/local/mysql/bin/mysqld_safe --user=mysql &

啟動報錯:
啟動mysql 報錯,,Starting MySQL.Manager of pid-file quit without updating fi[失敗]

出現(xiàn)這個問題,主要是,因為本服務(wù)器原來已經(jīng)安裝過mysql 應(yīng)該是沒有卸載干凈,所以會報錯.

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

第二, 看是否已經(jīng)運行數(shù)據(jù)庫進程了,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
第三 權(quán)限問題
/usr/local/mysql下
# chown -R mysql:mysql *

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 其實網(wǎng)上大家問的最多的都是整個問題,說什么鏈接不到mysqld.sock,其實大家不妨看看mysql的錯誤日志就明白怎么回事,我這里的錯誤日志是在 /var/lib/mysql/*.err 你會發(fā)現(xiàn)mysql只所以不能啟動,是因為/var/lib/mysql的權(quán)限不允許mysql服務(wù)訪問,英文mysql默認是調(diào)用mysql用戶來啟動服務(wù)的,好了,既然知道是什么原因找到不能啟動,那就簡單了。我們只要 chown -R mysql:mysql /var/lib/mysql 就行,如果還是啟動不了,再慢慢調(diào)試權(quán)限,反正一般啟動不了都是權(quán)限的問題。 如果大家還是不能啟動不了的話,那就用我的比較繁瑣的權(quán)限的設(shè)置,反正我每次都是這么做的,一般不會有問題,見下: 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.查看狀態(tài)
# /etc/rc.d/init.d/mysqld status


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

13.將mysql加入到系統(tǒng)變量path中
將/usr/local/mysql/bin 加入到path中,這樣在shell里就可以運行mysql相關(guān)的命令。
# vi /etc/profile
加入
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

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

14.登陸mysql
如果之前增加過環(huán)境變量直接
# mysql -u root -p
否則全路徑
# /usr/local/mysql/bin/mysql -u root -p
Enter password: 密碼??? 默認是空密碼
顯示所有的數(shù)據(jù)庫
mysql> show databases;
選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql> USE 數(shù)據(jù)庫名
顯示所選數(shù)據(jù)庫的所有表
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的時候發(fā)生這個錯誤:

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
解決方法:
1。 改表法??赡苁悄愕膸ぬ柌辉试S從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"
mysql>update user set host = '%' where user = 'root';

mysql>select host, user from user;
mysql>flush privileges;


如果前面沒有做修改root的密碼或者你自己設(shè)置為空,那么要用空密碼連接。切記,不能用之前設(shè)置的root12345那個用戶名密碼,那個默認只能本機訪問


mysql這個數(shù)據(jù)庫的數(shù)據(jù)表user,可以看到有好幾個root賬號,對應(yīng)本機local和外機%

mysql是系統(tǒng)庫不能刪


圖形化的界面還是比在命令行快多了。


Navicat for mysql中文保存出現(xiàn)亂碼的解決辦法

1.右鍵數(shù)據(jù)庫里鏈接,選擇“鏈接屬性”

2.切換到“高級”選項卡下 把“使用mysql字符集”前面的“勾選”去掉

如果不這樣設(shè)置就會出現(xiàn)輸入中文,保存就是“???”


17.Mysql補裝innodb引擎方法

先查看當(dāng)前引擎

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;



如何整個數(shù)據(jù)庫使用innodb引擎呢?

修改/etc/my.cnf文件

# vim /etc/my.cnf

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

同時注釋下面和inndb相關(guān)的#等

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';

更改系統(tǒng)級的隔離級別?
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"; //數(shù)據(jù)庫服務(wù)器名稱 
$username="root"; // 連接數(shù)據(jù)庫用戶名 
$password="123456"; // 連接數(shù)據(jù)庫密碼 
$mysql_database="test"; // 數(shù)據(jù)庫的名字 // 連接到數(shù)據(jù)庫 
$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"; //執(zhí)行sql查詢 
//mysql_select_db($mysql_database,$conn);
//$result=mysql_query($sql);
$result=mysql_db_query($mysql_database, $strsql, $conn); // 獲取查詢結(jié)果 
// 定位到第一條記錄 
mysql_data_seek($result, 0); echo "<table border=\"1\">";
// 循環(huán)取出記錄 
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); // 關(guān)閉連接 
mysql_close($conn);   
?>  
</body>
</html>


mysql示例employees數(shù)據(jù)庫

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


參考:

mysql問題解決
在linux下安裝mysql
MySQL數(shù)據(jù)庫的安裝與啟動
mysqldump: Character set 'gbk' is not a compiled character set
Mysql:is not allowed to connect to this MySQL server
源碼安裝Mysql,補裝innodb引擎方法

總結(jié)

以上是生活随笔為你收集整理的Linux环境编译安装Mysql以及PHP中文乱码解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。