⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manual_installing.html

📁 MySQL参考手册中文版
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<p>为了安装分发,使用下面的命令之一, 这里<code>/path/to/depot</code>是仓库文件的完整路径: 

<ul>
  <li>要安装所有东西,包括服务器、客户和开发工具: <pre> shell&gt; /usr/sbin/swinstall - s  /path/to/depot  mysql.full</pre>
  </li>
  <li>仅仅安装服务器: <pre>shell&gt; /usr/sbin/swinstall - s  /path/to/depot  mysql.server</pre>
  </li>
  <li>仅仅安装客户软件包: <pre>shell&gt; /usr/sbin/swinstall - s  /path/to/depot  mysql.client</pre>
  </li>
  <li>仅仅安装开发工具: <pre>shell&gt; /usr/sbin/swinstall - s  /path/to/depot  mysql.developer</pre>
  </li>
</ul>

<p>depot<tt>在“/opt/mysql”</tt>存放二进制代码和库文件并在<tt>“/var/opt/mysql”</tt>存放数据。depot也在<tt>“/sbin/init.d”</tt>和<tt>“ 
/sbin/rc2.d”</tt>里创建适当的入口以自动地在引导时启动服务器。显然, 
这有必要以<code>root</code>身份来安装。 </p>

<p>为了安装HP-UX tar分发,你必须有GNU <code>tar</code>的一个拷贝。</p>

<h2><a NAME="Installing_source" HREF="manual_toc.html#Installing_source">4.7 安装MySQL源代码分发</a></h2>

<p>你需要下列工具构造并安装<strong>MySQL</strong>源代码: 

<ul>
  <li>GNU <code>gunzip</code>解压缩该分发。 </li>
  <li>一个合适的<code>tar</code>解包分发。GNU <code>tar</code>已知可以工作。 </li>
  <li>一个能运行的ANSI C++编译器。<code>gcc</code>&gt; = 2.8.1 、<code>egcs</code>&gt; 
    = 1.0.2 、SGI C++和SunPro C++是一些已知能工作编译器。 当使<code>gcc</code>用时,不需要<code>libg++</code>。gcc2.7.x 
    有一个bug,使得它可能不能编译一些完全合法的C++文件,例如<tt>“sql/sql_base.cc”</tt>。如果你仅有<code>gcc</code>2.7.x,你必须升级<code>gcc</code>才能编译<strong>MySQL</strong>。 
  </li>
  <li>一个优秀的<code>make</code>程序。GNU <code>make</code>总是被推荐且有时必须。如果你有问题,我们推荐试一试GNU<code> 
    make</code>3.75或更新。 </li>
</ul>

<p>如果你遇到问题,当向<a HREF="mailto:mysql@lists.mysql.com">mysql@lists.mysql.com</a>邮寄问题时,<strong>请一直使用<code>mysqlbug</code></strong>。就算问题不是一个bug,<code>mysqlbug</code>收集系统信息,将有助于其它人解决你的问题。如果不使用<code>mysqlbug</code>,你减少得到关你问题的一个解决方案的可能性!在你解包分发后,你会在<tt>“scripts”</tt>目录下找到<code>mysqlbug</code>。见<a HREF="manual_Questions.html#Bug_reports">2.3 怎样报告错误或问题</a>。 </p>

<h3><a NAME="Quick_install" HREF="manual_toc.html#Quick_install">4.7.1 快速安装概述</a></h3>

<p>你必须执行的安装<strong>MySQL</strong>源代码分发的基本命令是(从一个解包的<code>tar</code>文件): 
</p>

<pre>shell&gt;configure
shell&gt;make
shell&gt;make install
shell&gt;scripts/mysql_install_db 
shell&gt;/usr/local/mysql/bin/safe_mysqld &amp;
</pre>

<p>如果你从一个源代码RPM开始,那么执行如下命令。 </p>

<pre>shell&gt; rpm -- rebuild MySQL-VERSION.src.rpm</pre>

<p>这样你制作一个可以安装的二进制RPM。 </p>

<p>如果你安装<code>了DBI</code>和<code>Msql-Mysql-modules</code>Perl模块,你可以利用<code>bin/mysql_setpermission</code>脚本增加新用户。 
</p>

<p>以下是更详细的描述: </p>

<p>为了安装源代码分发,按照下列步骤,然后继续到<a HREF="manual_Installing.html#Post-installation">4.15 安装后期的设置与测试</a>,进行安装后期的初始化与测试。 

<ol>
  <li>挑选一个你要在其下面解包分发的目录,并且进入该目录。 </li>
  <li>从节<a HREF="manual_Installing.html#Getting_MySQL">4.1 怎样获得MySQL</a>中列出的站点之一获得一个分发文件。<strong>MySQL</strong>源代码分发以压缩的<code>tar</code>档案提供,并且有类似于<tt>“mysql-VERSION.tar.gz”</tt>的名字,这里的<code>VERSION</code>是一个类似3.23.7-alpha的数字。 
  </li>
  <li>在当前目录下解包分发: <pre>shell&gt; gunzip &lt; mysql-VERSION.tar.gz | tar  xvf -</pre>
    <p>这个命令创建名为<tt>“mysql-VERSION”</tt>的一个目录。 </p>
  </li>
  <li>进入解包分发的顶级目录: <pre>
 shell&gt; cd  mysql-VERSION</pre>
  </li>
  <li>设置发行版本并且编译: <pre>shell&gt;./configure--prefix=/usr/local/mysql 
shell&gt;make 
</pre>
    <p>当你运行<code>configure</code>时,你可能想要指定一些选项,运行<code>./configure 
    --help</code>得到一张选项表。<a HREF="manual_Installing.html#configure_options">4.7.3 
    典型<code>的configure</code>选项</a>讨论一些很有用的选项。如果<code>configure</code>失败,你将发送包含<tt>你认为能帮你解决该问题的“config.log”</tt>的邮件,如果<code>configure</code>异常退出,也要包括<code>configure</code>的最后几行输出。<code>用mysqlbug</code>脚本邮寄错误报告。见<a HREF="manual_Questions.html#Bug_reports">2.3 怎样报告错误和问题</a>。如果编译失败,见节<a HREF="manual_Installing.html#Compilation_problems">4.8 编译问题?</a>,帮助解决很多常见问题。 
    </p>
  </li>
  <li>安装所有东西: <pre>shell&gt;make install</pre>
    <p>你可能需要<code>root</code>用户来运行这个命令。 </p>
  </li>
  <li>创造<strong>MySQL</strong>授权表(只有你以前没安装<strong>MySQL</strong>是必需的): 
    <pre>shell&gt;scripts/mysql_install_db</pre>
    <p>注意,在运行<code>mysql_install_db</code>时,那些比3.22.10旧的<strong>MySQL</strong>版本启动<strong>MySQL</strong>服务器。现在不是这样了! 
    </p>
  </li>
  <li>如果你想要安装对Perl <code>DBI</code>/<code>DBD</code>接口的支持,见<a HREF="manual_Installing.html#Perl_support">4.10 Perl安装注意说明</a>。 </li>
  <li>如果你想要<strong>MySQL</strong>在你引导机器时自动地启动,你可以拷贝<code>support-files/mysql.server</code>到你的系统中有启动文件的地方。更多的信息可以在<code>support-files/mysql.server</code>脚本里和<a HREF="manual_Installing.html#Automatic_start">4.15.3 自动启动和停止MySQL</a>找到。 
  </li>
</ol>

<p>在所有东西安装完以后,你应该初始化并且测试你的分发。 </p>

<p>你可以用下列命令启动<strong>MySQL</strong>服务器,这里<code>BINDIR</code>是<code>safe_mysqld</code>被安装的目录(<tt>缺省为“/usr/local/bin</tt>”): 
</p>

<pre>
shell&gt; BINDIR/safe_mysqld &amp;
</pre>

<p>如果这个命令提示<code>mysqld daemon ended</code>并马上失败,那么你能<tt>在文件“mysql-data-directory/'hostname'.err”</tt>找到一些信息。可能的原因是你已经有另外一个<code>正在运行的mysqld</code>服务器。见<a HREF="manual_Common_problems.html#Multiple_servers">19.3 在同一台机器上运行多个MySQL服务器</a>。 
</p>

<p>参见<a HREF="manual_Installing.html#Post-installation">4.15 
安装后期的设置与测试</a>。 </p>

<h3><a NAME="Applying_patches" HREF="manual_toc.html#Applying_patches">4.7.2 运用补丁</a></h3>

<p>有时补丁出现在邮件列表上或放在<strong>MySQL</strong> FTP地点的<a HREF="ftp://www.mysql.com/pub/mysql/Downloads/Patches">补丁区</a>。 </p>

<p>为了使用来自邮件列表的一个补丁,保存补丁出现在文件的消息,进入你的<strong>MySQL</strong>源代码树的顶级目录并运行这些命令: 
</p>

<pre>
shell&gt;patch - p1 &lt;patch-file-name 
shell&gt;rm config.cache
shell&gt;make clean
</pre>

<p>来自FTP地点的补丁是作为普通文本文件或作为被压缩了<code>的gzip</code>文件分发。运用一个文本的补丁如上述邮件列表补丁,为了使用一个压缩的补丁,进入你的<strong>MySQL</strong>源代码树顶级目录并运行这些命令: 
</p>

<pre>
shell&gt;gunzip &lt;patch-file-name.gz |patch - p1 
shell&gt;rm  config.cache 
shell&gt;make clean
</pre>

<p>在使用一个补丁以后,按照正常的源代码安装的指令,开始<code>./configure</code>步骤。在运行<code>make 
install</code>后,重启你的<strong>MySQL</strong>服务器。 </p>

<p>在运行<code>make install</code>前,你可能需要关闭所有正在运行的服务器(使用<code>mysqladmin 
shutdown</code>)。如果一个程序的新版本替代当前正在执行的版本,一些系统不允许你安装它。 
</p>

<h3><a NAME="configure_options" HREF="manual_toc.html#configure_options">4.7.3 典型<code>的configure</code>选项</a></h3>

<p><code>configure</code>脚本给你一个很大的控制权来如何配置你的<strong>MySQL</strong>分发。典型地,你使用<code>configure</code>命令行的选项进行。你也可以用正确的环境变量作用于<code>configure</code>。对于一个由<code>configure</code>支持的选择列表,运行这个命令: 
</p>

<pre>
shell&gt; ./configure -- help</pre>

<p>一些更常用的<code>configure</code>选项见下面的描述: 

<ul>
  <li>只编译<strong>MySQL</strong>客户库和客户程序而不是服务器,使用<code>--without-server</code>选项: 
    <pre>
shell&gt; ./configure --without-server</pre>
    <p>如果你没有一个 C++ 编译器,<code>mysql</code>将不编译(有一个客户程序需要C++)。在这种情况下,你可以去掉<code>configure</code>里面测试C++编译器的代码,然后运行带有 
    <code>--without-server</code>选项的<code>./configure</code>。编译步骤步将仍然尝试构造<code>mysql</code>,但是你可以忽略任何关于<tt>“ 
    mysql.cc ”</tt>的警告。(如果<code>make</code>停止,试试<code>make -k</code>告诉它即使出错继续剩下的构造步骤)。</p>
  </li>
  <li>如果你不想要位于<tt>“/usr/local/var”</tt>目录下面的日志(log)文件和数据库,使用类似于下列<code>configure</code>命令的一个: 
    <pre>
shell&gt;./configure--prefix=/usr/local/mysql 
shell&gt;./configure--prefix=/usr/local --localstatedir=/usr/local/mysql/data
</pre>
    <p>第一个命令改变安装前缀以便任何东西被安装在<tt>“/usr/local/mysql”</tt>下面而非缺省<tt>的“/usr/local”</tt>。第二个命令保留缺省安装前缀,但是覆盖了数据库目录缺省目录(通常是<tt>“/usr/local/var”</tt>)并且把它改/<code>usr/local/mysql/data</code>. 
    </p>
  </li>
  <li>如果你正在使用Unix并且你想要<strong>MySQL</strong>的套接字位于缺省地点以外的某个地方(通常在目录<tt>“/tmp”</tt>或<tt>“/var/run”</tt>,使用象这样的<code>configure</code>的命令: 
    <pre>
shell&gt; ./configure -- with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock</pre>
    <p>注意给出的文件必须是一个绝对路径! </p>
  </li>
  <li>如果你想编译静态链接程序(例如,制作二进制分发、获得更快的速度或与解决与RedHat分发的一些),像这样运行<code>configure</code>: 
    <pre>
shell&gt;./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
</pre>
  </li>
  <li>如果你正在使用<code>gcc</code>并且没有安装<code>libg++</code>或<code>libstdc++</code>,你可以告诉<code>configure</code>使用<code>gcc</code>作为C++编译器: 
    <a NAME="IDX45"></a> <a NAME="IDX46"></a> <a NAME="IDX47"></a> <a NAME="IDX48"></a> <pre>
shell&gt; CC=gcc  CXX=gcc  ./configure</pre>
    <p>当你使用时<code>gcc</code>作为C++编译器是,它将不试图链接<code>libg++</code>或<code>libstdc++</code>。如果构造失败并且产生有关编译器或链接器的错误,不能创建共享库<tt>“libmysqlclient.so.#”</tt>(<samp>“#”</samp>是一个版本号), 
    你可以通过为<code>configure</code>指定<code>--disable-shared</code>选项来解决此问题。在这种情况下,<code>configure</code>将不构造一个共享<code>libmysqlclient.so.#</code>库。 
    </p>
  </li>
  <li>你可以设置<strong>MySQL</strong>对于非<code>NULL</code>的列不使用<code>DEFAULT</code>列值(即,不允许列是<code>NULL</code>)。这导致<code>INSERT</code>语句产生一个错误,除非你明确地为所有要求非<code>NULL</code>值的列指定值。为了禁止使用缺省值,这样运行<code>configure</code>: 
    <a NAME="IDX49"></a> <a NAME="IDX50"></a> <pre>shell&gt; CXXFLAGS=-DDONT_USE_DEFAULT_FIELDS  ./configure</pre>
  </li>
  <li>缺省地,<strong>MySQL</strong>使用ISO-8859-1(Latin1)字符集。为了改变缺省设置,使用<code>--with-charset</code>选项目: 
    <pre>
shell&gt; ./configure -- with-charset=CHARSET</pre>
    <p><code>CHARSET</code>可以是<code>big5</code>、<code>cp1251</code>、<code>cp1257</code>、<code>czech</code>、<code>danish</code>、<code>dec8</code>、<code>dos</code>、<code>euc_kr</code>、<code>gb2312</code> 
    <code>gbk、german1</code>、<code>hebrew</code>、 <code>hp8</code>、<code>hungarian</code>、<code>koi8_ru</code>、<code>koi8_ukr</code>、<code>latin1</code>、<code>latin2</code>、<code>sjis</code>、<code>swe7</code>、<code>tis620</code>、<code>ujis</code>、<code>usa7</code>、<code>win1251</code>或<code>win1251ukr</code>之一。见<a HREF="manual_Server.html#Character_sets">9.1.1 用于数据和排序的字符集</a>。注意:如果你想要改变字符集,你必须在配置期间做<code>make 
    distclean</code>!如果你想在服务器和客户之间变换字符,你应该看一下<code>SET 
    OPTION CHARACTER SET</code>命令。见<a HREF="manual_Reference.html#SET_OPTION">7.25<code> 
    SET OPTION</code>句法</a>。<strong>警告:</strong>如果你在创建了任何数据库表之后改变字符集,你将必须对每个表运行<code>myisamchk 
    -r -q</code>,否则你的索引可能不正确地排序。(如果你安装了<strong>MySQL</strong>,创建一些表,然后重新配置<strong>MySQL</strong>使用一个不同的字符集并且重新安装它,这时就可能发生这种情况。)</p>
  </li>
  <li>为了配置<strong>MySQL</strong>带有调试代码,使用<code>--with-debug</code>选项: 
    <pre>
shell&gt; ./configure --with-debug</pre>
    <p>这导致包含一个安全的内存分配器,能发现一些错误和并提供关于正在发生的事情的输出。见<a HREF="manual_Porting.html#Debugging_server">G.1调试一个MySQL服务器</a>。 </p>
  </li>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -