本文首发于 烂泥行天下 。 本次实验的mysql、OS相关信息如下: Mysql:5.0.96 OS:centos 32 bit 最近公司要上新的业务,指明数据库使用的是mysql5.0版本。如果是使用rpm包安装的话,那就很简单了。直接使用yum安装即可,命令如下: yum –y install mysql m
本文首发于烂泥行天下。
本次实验的mysql、OS相关信息如下:
Mysql:5.0.96 OS:centos 32 bit
最近公司要上新的业务,指明数据库使用的是mysql5.0版本。如果是使用rpm包安装的话,那就很简单了。直接使用yum安装即可,命令如下:
yum –y install mysql mysql-server
Yum方式安装完毕后,直接启动mysql数据库服务即可。如下图:
这样基本上就可以了。
但是这样安装mysql数据库,没有进行定制。比如mysql数据库的数据文件存储位置。rpm形式安装的数据文件默认位置为/var/lib/mysql。这个我们可以通过mysql的配置文件查看所得,如下图:
实际的情况是,我们新的业务要求mysql数据库的数据文件需要单独进行存放,这个使用rpm形式就不太容易达到要求。所以打算使用源码进行编译安装,而且自己也没有对mysql数据库进行源码安装过。刚好趁这次机会学习如何对mysql数据库进行源码安装。
首先,在相应的网站下载mysql的安装包。为什么说是相应的网站,而不是mysql的官网。因为现在在官网无法下载到5.0版本的,只能下载到5.5以上的版本。我现在是在这个网站下载的:http://download.mysql.cn/src/
下载完毕上传到服务器上,具体如何上传你可以使用winscp、FTP。或者也可以使用lrzsz这个软件。
我现在使用的就是lrzsz这个软件,如果你的服务器没有安装的话,可以通过:
yum –y install lrzsz
进行安装,如下图:
rz 是上传的命令,sz是下载的命令。
我们现在使用日志命令把mysql的安装包,上传到服务器上,如下图:
Mysql安装包已经上传完毕,那么我们现在进行安装mysql之前的工作。
安装mysql编译所需要的工具包,如下图:
yum -y install gcc gcc-c++ ncurses-devel
工具包安装完毕后,我们来新建相关的用户。第一个用户ilanni,用来安装mysql使用。第二个用户是mysql,用来运行mysql的。如下图:
把mysql安装包移动到ilanni用户的家目录下,并解压,如下图:
以上工作是前提工作,做完后。我们现在进入mysql-5.0.96目录开始安装mysql。
首先编译mysql数据库,如下图:
./configure --prefix=/usr/local/mysql 其中/usr/local/mysql为mysql数据库的安装位置。
可以看到没有报错,那我们开始make,如下图:
Make过程比较慢,我这边大约10分钟左右。
Make终于完毕了,通过上图可以没有报错。
下面开始make install,如下图:
Make install还是比较快的,可以看到没有报错。
Mysql已经安装完毕,下面开始进行相关的配置。
还是在该安装目录下,如下图:
复制support-files目录下的my-medium.cnf到/etc/下作为mysql的配置文件:
cp support-files/my-medium.cnf /etc/my.cnf
复制support-files目录下的mysql.server到/etc/init.d/目录下作为mysql的启动文件
现在我们来启动下使用/etc/init.d/mysqld启动mysql 试下,如下图:
可以看到系统提示我们,没有执行该脚本的权限。而mysqld脚本的权限,看下图:
可以很明显的看到目前该脚本的权限为744,根本没有执行权限。
现在更改该脚本的权限,如下图:
Ok,该文件的权限修改完毕后,我们来初始化mysql数据库。在文章的开头我就说了,我现在要把mysql的数据文件存放在/data目录下。
首先要创建/data目录,并修改该目录的所属用户及用户组。如下图:
修改完毕后,我们还需要修改/usr/local/mysql的所属用户及用户组,如下图:
以上修改完毕后,我们还需要修改mysql的配置文件。主要是要在配置文件中加入目前自己定义数据文件位置,如下图:
以上所有的修改进行完毕后,我们在执行mysql安装目录scripts下mysql_install_db文件,如下图:
./scripts/mysql_install_db --user=mysql 中的--user=mysql一定要有。
我们来查看mysql初始化的结果,查看/data目录,如下图:
可以看到mysql的默认数据mysql及test都在里面。
现在我们来启动mysql看看实际的情况,如下图:
/etc/init.d/mysqld start
如果要把mysql开机启动,可以使用chkconfig命令。如下图:
如果你想在如何目录下直接mysql命令,需要把/usr/local/mysql/bin路径加入到全局设置/etc/profile文件中,如下图:
Ok,到此mysql数据库就安装完毕。
如果mysql客户端连接,mysql服务比较慢的话。我们需要在my.cnf文件中加入skip-name-resolve,如下:
PS:有关本次实验使用的命令如下,在执行过程中建议尽量按照命令的顺序进行操作:
yum -y install gcc gcc-c++ ncurses-devel
tar xf mysql-5.0.22.tar.gz
useradd ilanni
useradd -s /sbin/nologin mysql
cd /home/ilanni/mysql-5.0.22
./configure --prefix=/usr/local/mysql
make
make install
cp /home/ilanni/mysql-5.0.96/support-files/my-medium.cnf /etc/my.cnf
cp /home/ilanni/mysql-5.0.96/support-files/mysql.server /etc/init.d/mysqld
chmod -R 755 /etc/init.d/mysqld
chown -R mysql:mysql /usr/local/mysql
mkdir /data
chown -R mysql:mysql /data
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql
/etc/init.d/mysqld start
echo PATH=$PATH:/usr/local/mysql/bin/ >>/etc/profile
tail -10 /etc/profile
source /etc/profile

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

MySQL适合小型和大型企业。1)小型企业可使用MySQL进行基本数据管理,如存储客户信息。2)大型企业可利用MySQL处理海量数据和复杂业务逻辑,优化查询性能和事务处理。

InnoDB通过Next-KeyLocking机制有效防止幻读。1)Next-KeyLocking结合行锁和间隙锁,锁定记录及其间隙,防止新记录插入。2)在实际应用中,通过优化查询和调整隔离级别,可以减少锁竞争,提高并发性能。

MySQL不是一门编程语言,但其查询语言SQL具备编程语言的特性:1.SQL支持条件判断、循环和变量操作;2.通过存储过程、触发器和函数,用户可以在数据库中执行复杂逻辑操作。

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL是一个开源的关系型数据库管理系统,适用于数据存储、管理、查询和安全。1.它支持多种操作系统,广泛应用于Web应用等领域。2.通过客户端-服务器架构和不同存储引擎,MySQL高效处理数据。3.基本用法包括创建数据库和表,插入、查询和更新数据。4.高级用法涉及复杂查询和存储过程。5.常见错误可通过EXPLAIN语句调试。6.性能优化包括合理使用索引和优化查询语句。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

InnoDB的锁机制包括共享锁、排他锁、意向锁、记录锁、间隙锁和下一个键锁。1.共享锁允许事务读取数据而不阻止其他事务读取。2.排他锁阻止其他事务读取和修改数据。3.意向锁优化锁效率。4.记录锁锁定索引记录。5.间隙锁锁定索引记录间隙。6.下一个键锁是记录锁和间隙锁的组合,确保数据一致性。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1
好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版
中文版,非常好用