LNMP环境搭建——MySQL篇

这篇博客详细介绍了如何在Linux环境下搭建LNMP(Linux, Nginx, MySQL, PHP)中的MySQL部分,包括安装MySQL,添加用户,安装phpmyadmin以及解决常见的错误问题,如连接错误和权限问题。此外,还提到了MySQL源码安装的步骤。" 132174002,9831144,神经网络在深度学习中的应用,"['人工智能', '深度学习', '机器学习', '图像处理', '语音识别']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The world’s most popular open source database

1.Install MySQL

root@kallen:~# apt-get install mysql-server-5.5 mysql-client-5.5

2.Add Users

(1) 选择数据表
语句如下:use mysql;
(2) 在mysql的user表中增加连接用户帐号:
这里不要直接使用INSERT语句添加user记录,使用INSERT可能出现错误:

ERROR 1364 (HY000): Field ‘ssl_cipher’ doesn’t have a default value

不过早期的MYSQL版本倒没出现这个错误,因为一直都是直接修改user表或直接使用INSERT语句完成,后来升级MYSQL到5.1的时候,发现可能会出现这个错误。
建议使用GRANT语句进行授权,语句如下:

GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

上句:

“username”替换为将要授权的用户名,比如clientusr;
“password”替换为clientusr设置的密码;

(3) 可访问数据表授权

创建好帐户之后,就开始给上面的common user进行数据表授权,步骤3中增加的连接用户默认权限都是“N”的,必须在db表中为该帐户授权,允许其访问专用数据库,当然超级用户就不说了。

使用下面语句:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON tablename.*  TO 'username'@'localhost' IDENTIFIED BY 'password';

本语句中的权限根据实际需要确定:

“tablename”替换为授权访问的数据表table名
“username” 是步骤2授权用户名
“password” 是步骤2授权用户的设置密码

这样就为该用户授予了对某数据表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP权限。

(4) 生效授权,创建完毕

一句话即可:FLUSH PRIVILEGES;

3.Install phpmyadmin

用随便一个支持PHP的web服务器(如Apache、Nginx、Lighttpd),下载phpmyadmin,装之。

sudo apt-get install phpmyadmin   #注意这是安装到/usr/share/phpmyadmin

在ubuntu下,sudo apt-getinstall phpmyadmin后会有一些设置,如选择服务器、密码设定等等内容。安装完成后,访问http://localhost/phpmyadmin会出现404错误,这是因为没有将phpmyadmin目录映射到apache目录下面,运行下面命令即可:

sudo ln -s /usr/share/phpmyadmin /var/www/html

[常见错误]

(1) 安装错误:

Error: Package: php54w-tidy-5.4.41-1.w6.x86_64 (webtatic)

 Requires: libtidy-0.99.so.0()(64bit)

 You could try using --skip-broken to work around the problem

 You could try running: rpm -Va --nofiles --nodigest 

需要安装libtidy-0.99.so:

[root@amtt02 html]# rpm -ivh libtidy-0.99.0-19.20070615.1.el6.x86_64.rpm

(2) 访问错误:
在http.conf文件中加入:

<Directory “/usr/share/phpmyadmin/”> 

AllowOverride None 

Order allow,deny 

Allow from all 

</Directory> 
service httpd restart 

之后,就能成功启动httpd服务了,问题解决。

访问phpMyAdmin提示:

配置文件权限错误,无法写入!

解决办法:

chmod -R 755 ./phpmyadmin

这样设置下phpMyAdmin目录权限属性为755就可以访问了。原来phpMyAdmin必须在755权限下才可以运行。

注意:在777下也是错误的,估计是phpMyAdmim为安全着想。

4.Can’t connect to MySQL server on ‘localhost’(10038)

Mysql Error

查一下你的MYSQL用户表里, 是否允许远程连接

(1)给用户授权

mysql>grant all privileges on *.*to'root'@'%'  identified by 'youpassword'  with grant option;
mysql>flush privileges;

(2)修改/etc/mysql/my.conf

找到bind-address =127.0.0.1这一行
改为bind-address =0.0.0.0 即可

root@kallen:/etc/selinux# vim /etc/mysql/
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
# Remote Access to MySQL on port 3306
# Kallen Ding, Jun 11 2015
bind-address = 0.0.0.0

5.安装mysql*.rpm提示conflicts with file from package的解决办法

Preparing...                ########################################### [100%]
    file /usr/share/mysql/charsets/Index.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/latin1.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/armscii8.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/ascii.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/cp1250.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/cp1256.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/cp1257.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/cp850.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/cp852.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/cp866.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/dec8.xml from install of MySQL-server-5.5.43-1.el6.x86_64 conflicts with file from package mysql-libs-5.1.71-1.el6.x86_64
    file /usr/share/mysql/charsets/geostd8.xml from install of MySQL-server
### 详细的LNMP环境搭建步骤和配置指南 #### 准备工作 确保操作系统已经更新到最新版本并安装必要的开发工具包。对于基于Red Hat的企业版Linux(RHEL)、CentOS或Fedora,可以使用如下命令来完成这些操作[^2]: ```bash sudo yum update -y && sudo yum groupinstall "Development Tools" -y ``` #### 安装Nginx Web服务器 通过官方源或其他可信第三方源获取最新的稳定版Nginx软件包,并执行安装: ```bash sudo yum install epel-release -y sudo yum install nginx -y ``` 启动服务并将它设置为开机自启: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` #### 配置MariaDB/MySQL数据库管理系统 为了提高性能与安全性建议采用社区维护的分支——MariaDB替代原生MySQL。先添加仓库再继续安装流程: ```bash sudo vi /etc/yum.repos.d/MariaDB.repo # 添加对应版本库信息后保存退出编辑器... sudo yum install mariadb-server -y ``` 初始化安全选项并向防火墙开放端口访问权限: ```bash sudo mysql_secure_installation sudo firewall-cmd --add-service=mysql --permanent sudo firewall-cmd --reload ``` 最后同样要记得开启服务以及设定随系统引导自动加载: ```bash sudo systemctl start mariadb sudo systemctl enable mariadb ``` #### PHP解释器及相关扩展模块的选择 考虑到兼容性和功能需求,这里推荐选用PHP7.x系列及以上版本。由于默认yum源可能不提供较新的发行号,因此需借助外部资源如Remi's RPM repository来进行升级处理。 ```bash sudo rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum-config-manager --enable remi-php74 # 或者其他想要启用的具体子版本编号 sudo yum install php php-fpm php-mysqlnd -y # 根据实际项目依赖情况增减组件列表项 ``` 调整php.ini文件中的参数以适应Web应用运行环境的要求;同时修改/etc/php-fpm.d/www.conf内的监听地址以便于后续集成至Nginx反向代理机制之中。 #### Nginx与PHP-FPM协同工作的实现方式 编辑站点对应的server block模板,在location ~ \.php$ {}区块内部指定fastcgi_pass指向本地FastCGI进程管理守护程序实例所占用的Unix Socket路径或是TCP/IP套接字位置。 ```nginx location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/var/run/php-fpm.sock; # 对应于unix socket形式 } ``` 重启相关联的服务单元使更改生效即可完成整个部署过程。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值