zoukankan      html  css  js  c++  java
  • linux下源代码搭建php环境之mysql(一)

    如今已经大半夜了,五一劳动节挺无聊的。

    折腾一下吧。实在是睡不着。于是乎在电脑上安装个虚拟机,然后呢,在虚拟机上搭建一个php环境。

    首先我得安装MYSQL吧。

    发现遇到的问题真多。

    。待我娓娓道来。

    下面是在某站点上找到的安装步骤:

    主要介绍linux操作系统下mysql源代码进行纯手动安装。假设你对linux操作系统下MySQL源代码进行纯手动安装的实际操作流程感兴趣的话,你最好还是浏览下面的文章。

    1.实现linux下纯手动MySQL源代码安装,首先要下载MySQL的源代码,我下载的是MySQL-5.0.87.tar.gz

    2.解压tar –xvfMySQL-5.0.87.tar.gz

    3.进入MySQL-5.0.87

    4.检測环境并指定安装文件夹:./configure--prefix=/usr/local/MySQL

    5.编译:make

    6.安装:sudo make install

    7.实现linux下纯手动MySQL源代码安装中要进行配置。首先能够看到安装完的文件夹例如以下

     

    在share/MySQL下打命令:ls –l | grepmy-

    出来的都是MySQL的配置文件。依照须要选择当中一个拷到/etc下命名为my.cnf

    /etc/my.cnf是MySQL默认读的配置文件的路径

    8.改动var的可写权限。这是MySQL的数据库数据文件存放的位置,由于用当前用户来执行MySQL的后台程序可能没有这个文件夹的可写权限。

    chmod 777 ./var –r

    9.配置系统环境变量。使得能够直接运行MySQL的程序

    系统的环境变量是放在/etc/profile下的,而用户的环境变量是放在用户的根文件夹下的.bashrc下

    /etc/profile的配置:

    1. PATH=/usr/local/MySQL/bin:$PATH 
    2. PATH=/usr/local/MySQL/libexec:$PATH 

    10.在启动MySQLd之前要先初始化它。运行MySQL_install_db

    11.直接打mysqld_safe&启动mysql,由于之前配置过环境变量

    12.直接MySQL进入MySQL的命令行控制。默认是以当前username登录的。默认root是没有password的

    13.设置root的密码:MySQLadmin –u rootpassword ‘123456’

    14.以root身份登录:MySQL –uroot–p

    15.设置远程登录数据库。用户创建后默认是仅仅能在本地登录的。

    1. update user set Host='%’ where user=‘guoyu'

    这句是将guoyu这个用户的同意登录的地址改成随意。但不包含本地。也就是说这样guoyu这个用户就无法在本地登录了,仅仅能远程登录。

    仅仅有root用户才干运行这句。所以要先以root用户登录到本地数据库才行。

    1. flush privileges; 

    16.停止mysql:mysqladminshutdown

    要再运行这句刷新缓存才干生效。

    以上的相关内容就是对linux下纯手动MySQL源代码安装的介绍,望你能有所收获。

    过程中遇到例如以下问题:

    遇到的问题一:

    No targets specified and no makefile found. Stop.
    解决:
    yum install gcc gcc-c++ autoconf automake

    遇到的问题二:

    Permission denied
    Permission denied in linux

    在linux上安装有些东西时会出现 Permission denied 的情况:下面就是
    解决:
    编辑/etc/selinux/config。找到这段:
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing - SELinux security policy is enforced.
    # permissive - SELinux prints warnings instead of enforcing.
    # disabled - SELinux is fully disabled.
    SELINUX=enforcing


    把 SELINUX=enforcing 凝视掉:#SELINUX=enforcing 。然后新加一行为:
    SELINUX=disabled
    保存。关闭。
    ......

    编辑/etc/sysconfig/selinux,找到:
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing - SELinux security policy is enforced.
    # permissive - SELinux prints warnings instead of enforcing.
    # disabled - SELinux is fully disabled.
    SELINUX=enforcing


    假设SELINUX已经是 SELINUX=disabled。那么就不用改了。否则就把


    SELINUX=enforcing 凝视掉,新加一行:
    SELINUX=disabled
    保存,退出。


    假设你碰到其它类似提示:
    cannot restore segment prot after reloc: Permission denied
    哪应该是SELinux的问题,能够考虑把它关闭。
    ----------------------------------------------------------------


    ---------------------
    郁闷的是.我把SELinux关闭后还是不行.于是到google上search.发现这个


    非常实用.
    在你保证SElinux 被disable后.还运行下
    chcon -t texrel_shlib_t
    如: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视详细运行文件.)
    以上两步.已经攻克了非常多server的问题了.

    遇到的问题三:

    没有ROOT权限

    解决:

    打开终端,在终端中输入[root@localhost ~]# su


    遇到的问题四:

    在tar。./configure,make,make install 经典四步时,从来没有想过当中的过程。仅仅认为像例行公事一样,做就是了。


    不幸的是,这次在./configure后。make时出现下面错误:
    make: *** No targets specified and no makefile found. stop.
     
    解决:
    在网上找到相关资料。确认是./configure出了问题。于是回头查看,果然发现问题:最后几行出了错。

    完整错误信息例如以下:
    checking for tgetent in -lncurses... no
    checking for tgetent in -lcurses... no
    checking for tgetent in -ltermcap... no
    checking for tgetent in -ltinfo... no
    checking for termcap functions library... configure: error: No 
    curses/termcap library found
     
    原因:
    缺少ncurses安装包
     
    解决的方法:
    下载安装对应软件包
    一、假设你的系统是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
     
    待安装completed!之后。再./configure,顺利通过。然后make && make 
    install,安装成功,一切OK。~~~

    遇到的问题五:

    bash: mysql: command not found
    解决:
    第一个问题,是由于你的mysql命令的路径在/usr/local/mysql/bin以下,所以你直接使用mysql命令时,系统在/usr/bin以下查此命令,所以找不到了,解决的方法是 ln -s /usr/local/mysql/bin/mysql /usr/bin 做个链接就可以,
    第二个问题是你由于你没有指定password參数而至,应这样 mysql -uroot -p
    或者直接使用相对路径./mysql -uroot -p123456

    擦汗了一把,安装一个MYSQL遇到了这么多问题。

    幸好到最后成功安装了。


    最后总结了一下安装过程:

    1.完毕linux系统下纯手动MySQL源代码的安装,首先要下载MySQL的源代码,我下载的是MySQL-5.0.87.tar.gz 

    2.解压tar –xvf MySQL-5.0.87.tar.gz 

    3.进入MySQL-5.0.87 

    4.检測环境并指定安装的文件夹:./configure --prefix=/usr/local/MySQL 检測出来缺什么那就安装什么。假设连gcc和g++都没有。没有编译器的话就要直接下载rpm包(已编译好的二进制文件)再安装到系统。 例如以下是安装gcc的命令(要先去下载这个包,这个地址有比較多的rpm包下载http://mirror.oa.com/SLES10-SP1-RPMS-32/): 

    sudo rpm -ivh gcc-4.1.2_20070115-0.11.i586.rpm 

    安装这些rpm包的过程中有些是已安装的。或者是自己依赖自己导致安装不了。反正安装不了就用强制安装并忽略依赖的命令

    sudo rpm -ivh gcc-4.1.2_20070115-0.11.i586.rpm –-force –nodeps 

    可能进过安装一系列的rmp包后,最终完毕了环境检測。

    。。

    。。。 

    5.编译:make 

    6.安装:sudo make install

    7.实现linux下纯手动MySQL源代码安装中要进行配置。首先能够看到安装完的文件夹例如以下 在share/MySQL下打命令:

    ls –l | grep my-

    出来的都是MySQL的配置文件,依照须要选择当中一个拷到/etc下命名为my.cnf /etc/my.cnf是MySQL默认读的配置文件的路径

    8.改动var的可写权限。

    这是MySQL的数据库数据文件存放的位置,由于用当前用户来执行MySQL的后台程序可能没有这个文件夹的可写权限。

    chmod 777 ./var –r 

    9.配置系统环境变量,使得能够直接运行MySQL的程序 系统的环境变量是放在/etc/profile下的,而用户的环境变量是放在用户的根文件夹下的.bashrc下 (1) /etc/profile的配置:PATH export PATH当中/usr/local/mydql/bin是MySQL基本的可运行程序的文件夹,而libexec是放MySQL的后台主程序MySQLd的。

    (2).bashrc的配置: 

    set PATH=/usr/local/MySQL/bin:$PATH 

    set PATH=/usr/local/MySQL/libexec:$PATH

    export PATH这里注意.bashrc里面是要加个set的。

    配置完后重登录就能够生效了

    10.在启动MySQLd之前要先初始化它。运行MySQL_install_db 

    11.启动MySQLd,直接打MySQLd就能够了,由于之前配置过系统环境变量了 

    12.直接MySQL进入MySQL的命令行控制。默认是以当前username登录的,默认root是没有password的

    13.设置root的密码:MySQLadmin –u root password ‘123456’ 

    14.以root身份登录:MySQL –uroot –p 

    15.设置远程登录数据库。用户创建后默认是仅仅能在本地登录的。 update user set Host='%’ where user=‘guoyu'; 这句是将guoyu这个用户的同意登录的地址改成随意,但不包含本地。也就是说这样guoyu这个用户就无法在本地登录了,仅仅能远程登录。 仅仅有root用户才干运行这句。所以要先以root用户登录到本地数据库才行。 flush privileges; 要再运行这句刷新缓存才干生效。以上的相关内容就是对linux下纯手动MySQL源代码安装的介绍。望你能有所收获。

    最后在网上找的MYSQL配置的相关资料:

    1. 配置开机启动服务
    /sbin/chkconfig httpd on [设置apacheserverhttpd服务开机启动]
    /sbin/chkconfig –add mysqld [在服务清单中加入mysql服务]
    /sbin/chkconfig mysqld on [设置mysql服务开机启动]
    /sbin/service httpd start [启动httpd服务,与开机启动无关]
    /sbin/service mysqld start [启动mysql服务,与开机无关]

    2. 设置mysql数据库root帐号password。默认的初始化password为空~~~
    mysqladmin -u root password ‘new-password’ [引號内填密码]

    3. 让mysql数据库更安全
    mysql -u root -p
    mysql> DROP DATABASE test; [删除test数据库]
    mysql> DELETE FROM mysql.user WHERE user = ”; [删除匿名帐户]
    mysql> FLUSH PRIVILEGES; [重载权限]
    4.安装上mysql扩展
    yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
    5.设置默认编码等一些初始參数(my.cnf)
    vi /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    default-character-set=utf8 [加入]
    default-storage-engine=INNODB [加入]
    old_passwords=1
    [client]
    default-character-set=utf8 [加入]
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
     

  • 相关阅读:
    Java-IO流-简介
    Java-异常处理-自定义异常
    致橡树-舒婷
    js字符串/数组常用方法总结
    使用vue-cli4快速搭建vue项目demo
    使用vue-cli4快速搭建vue项目demo
    小白第一次用MacOS
    文字背景对比度contrast ratio的计算公式
    如何使用 v-model 绑定一个 computed 属性?
    Java基础--数组
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7307867.html
Copyright © 2011-2022 走看看