`

Ubuntu Server下通过Source Code 安装Mysql

阅读更多

1.下载mysql source code:

 

2.创建用户和组:

shell:~$ /usr/sbin/groupadd mysql

shell:~$ /usr/sbin/useradd -r -g mysql mysql

3.准备安装mysql所需要的工具:

  3.1. cmake

    没有自己编译安装cmake

    shell:~$ sudo apt-get install cmake

3.2. GNU make

    Ubuntu自带

3.3.GCC

    Ubuntu自带

    版本:必须3.2以上

3.4.Perl

    Ubuntu自带

3.5.g++

  自己安装

  shell:~$ sudo apt-get install g++

  如果差了这个包,cmake时会报"CMAKE_CXX_COMPILER-NOTFOUN"错误.

3.6.libncurses5-dev (ncurses-devel)

    如果差了这个包,cmake时会报"missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH"错误.

    Debian/Ubuntu上的包名是libncurses5-devRedHat和其他版本对应的是ncurses-devel

    shell:~$ sudo apt-get install libncurses5-dev

    如果安装后还报这个错,执行rm -f CMakeCache.txt,再重新cmake.

   

3.7.bison

  shell:~$ sudo apt-get install bison

  可选。没有这个工具,在make的时候报出警告。

  警告记录:Warning: Bison executables not found in PATH

 

3.8.chkconfig

   后面配置mysql服务自启动的时候需要。

   shell:~$ sudo apt-get install chkconfig

4.编译和安装:

    4.1

shell:~$ tar -zxvf /home/kmimi/mysql-5.5.18.tar.gz
shell:~$ cd /home/kimi/mysql-5.5.18

4.2

shell:~$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data -DMYSQL_USER=mysql

其中:

-DCMAKE_INSTALL_PREFIXmysql要安装到的目录。

-DDEFAULT_CHARSETmysql默认字符编码。

-DMYSQL_DATADIRmysql数据文件存放的目录。

    4.3 make & make install.

5. 配置:

5.1 安装mysql默认的数据库  

shell:~$ cd /usr/local/mysql/scripts

shell:~$ ./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql  
5.2
安装目录下的支持文件目录
     shell:~$ cd /usr/local/mysql/support-files
5.3
复制mysql配置文件
     shell:~$ sudo cp my-medium.cnf /etc/my.cnf

5.4复制服务文件并修改
         shell:~$ sudo cp mysql.server mysqld
     5.5
修改mysqld
         basedir=/usr/local/mysql
         datadir=/var/mysql/data
        
 shell:~$ mv mysqld /etc/init.d/mysqld

5.6启动服务
       shell:~$ service mysqld start

测试是否成功可运行netstatMysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306

Shell:~$ netstat -nat

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address      Foreign Address     State   

tcp  0  0         0.0.0.0:3306           0.0.0.0:*      LISTEN   

上面显示可以看出MySQL服务已经启动。

5.7关闭服务

shell:~$ service mysqld stop

5.8 添加服务到自启动项
        shell:~$ sudo chkconfig --level 3 mysqld on

5.9 设置软连接使mysql,  mysqldump,  mysqladmin这三个命令能在shell中直接运行
        shell:~$ sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
        shell:~$ sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin
        shell:~$ sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin

6. 登录和维护mysql

      6.1 登录MySQL的命令是mysql mysql 的使用语法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]

username password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。

Shell:~$ mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 1 to server version: 4.0.16-standard

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

出现了“mysql>”提示符,恭喜你,安装成功!

增加了密码后的登录格式如下:

mysql -u root -p

Enter password: (输入密码)

其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

    6.2修改root密码

        shell:~$ /usr/bin/mysqladmin -u root password 'new-password'

shell:~$ /usr/bin/mysqladmin -u root -h test1 password 'new-password'

6.3. 允许root远程登陆:

    1)本机登陆mysqlmysql -u root -p -p一定要有);改变数据库:use mysql;

    2)从所有主机:grant all privileges on *.* to root@"%" identified by "passw0rd" with grant option;

    3)从指定主机:grant all privileges on *.* to root@"192.168.11.205" identified by "passw0rd" with grant option; flush privileges;

    4)  mysql库查看host%的数据是否添加:use mysql; select * from user;

6.4 创建数据库,创建user

    1)  建库:create database test1;

    2)  建用户,赋权:grant all privileges on test1.* to user_test@"%" identified by "passw0rd" with grant option;

    3)删除数据库:drop database test1;

  6.5 删除权限:

    1) revoke all privileges on test1.* from test1@"%";

    2) use mysql;

    3) delete from user where user="root" and host="%";

    4) flush privileges;

  6.6 显示所有的数据库:show databases; 显示库中所有的表:show tables;

  6.7 远程登录mysqlmysql -h ip -u user -p

  6.8 设置字符集(以utf8为例):

    1 查看当前的编码:show variables like 'character%';

    2) 修改my.cnf,在[client]下添加default-character-set=utf8

    3 [server]下添加default-character-set=utf8init_connect='SET NAMES utf8;'

    4 重启mysql

    注:只有修改/etc下的my.cnf才能使client的设置起效,安装目录下的设置只能使server的设置有效。

      二进制安装的修改/etc/my.cnf即可

6.9 备份和恢复

    备份单个数据库:mysqldump -uroot -p -B dbname > dbname.sql

    备份全部数据库:mysqldump -uroot -p --all-databases > all.sql

    备份表: mysqldump -uroot -p -B dbname --table tablename > tablename.sql

    恢复数据库:mysql -uroot -p < name.sql

    恢复表:mysql -uroot -p dbname < name.sql (必须指定数据库)

   6.10 复制

Mysql支持单向的异步复制,即一个服务器做主服务器,其他的一个或多个服务器做从服务器。复制是通过二进制日志实现的,主服务器写入,从服务器读取。可以实现多个主服务器,但是会碰到单个服务器不曾遇到的问题(不推荐)。

    1). 在主服务器上建立一个专门用来做复制的用户:grant replication slave on *.* to 'replicationuser'@'192.168.0.87' identified by 'iverson';

2). 刷新主服务器上所有的表和块写入语句:flush tables with read lock; 然后读取主服务器上的二进制二进制文件名和分支:SHOW MASTER STATUS;FilePosition的值记录下来。记录后关闭主服务器:mysqladmin -uroot -ppassw0rd shutdown

      如果输出为空,说明服务器没有启用二进制日志,在my.cnf文件中[mysqld]下添加log-bin=mysql-bin,重启后即有。

    3). 为主服务器建立快照(snapshot

      需要为主服务器上的需要复制的数据库建立快照,Windows可以使用zip格式,LinuxUnix最好使用tar命令。然后上传到从服务器mysql的数据目录,并解压。

      cd mysql-data-dir

      tar cvzf mysql-snapshot.tar ./mydb

      注意:快照中不应该包含任何日志文件或*.info文件,只应该包含要复制的数据库的数据文件(*.frm*.opt)文件。

      可以用数据库备份(mysqldump)为从服务器做一次数据恢复,保证数据的一致性。

    4). 确认主服务器上my.cnf文件的[mysqld]section包含log-bin选项和server-id,并启动主服务器:

      [mysqld]

      log-bin=mysql-bin

      server-id=1

    5). 停止从服务器,加入server-id,然后启动从服务器:

      [mysqld]

      server-id=2

      注:这里的server-id是从服务器的id,必须与主服务器和其他从服务器不一样。

      可以在从服务器的配置文件中加入read-only选项,这样从服务器就只接受来自主服务器的SQL,确保数据不会被其他途经修改。

    6). 在从服务器上执行如下语句,用系统真实值代替选项:

      change master to MASTER_HOST='master_host', MASTER_USER='replication_user',MASTER_PASSWORD='replication_pwd',

        MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=log_position;

    7). 启动从线程:mysql> START SLAVE; 停止从线程:stop slave;(注意:主服务器的防火墙应该允许3306端口连接)

    验证:此时主服务器和从服务器上的数据应该是一致的,在主服务器上插入修改删除数据都会更新到从服务器上,建表,删表等也是一样的。

分享到:
评论

相关推荐

    SourceCode版本Sakai安装配置

    以上是SourceCode版本Sakai的详细安装配置步骤,过程中可能需要根据实际环境进行微调。请确保每个步骤都正确执行,遇到问题时查阅Sakai社区文档或在线资源以寻求解决方案。完成这些步骤后,你将拥有一个本地运行的...

    linux 下mysql5.5安装配置大全

    确保从MySQL官方网站的“MySQL Community Server”下选择“Source Code”,并下载“Generic Linux mysql-5.5.x.tar.gz”。 6. **安装所需的依赖库**: 在Ubuntu 10.10下,安装MySQL所需的工具包括CMake、GNU make...

    MySQL8.4.0 LTS(mysql-8.4.0.tar.gz)

    MySQL Community Server 8.4.0 LTS(mysql-8.4.0.tar.gz),Source Code 适用于All Operating Systems (Generic) (Architecture Independent), Compressed TAR Archive

    LINUX环境下MYSQL5.5.X源码安装[借鉴].pdf

    2. **下载MySQL源码**:访问MySQL的官方下载页面,选择MySQL Community Server下的Source Code,找到适用于Linux的Generic版本,如mysql-5.5.x.tar.gz,下载并解压。 3. **创建数据目录**:在Linux系统中,创建...

    linux下源码安装mysql5.6.20教程

    MySQL的源码可以在其官方网站上获取,例如5.6.20版本,你可以通过HTTP或HTTPS访问`http://dev.mysql.com/downloads/mysql`选择Source Code进行下载。 2. **安装必要软件包**: 在安装MySQL源码之前,确保系统已经...

    Linux下ESP8266开发环境搭建资源包

    在Linux环境下进行ESP8266的开发工作,你需要搭建一...以上步骤详细介绍了在Ubuntu环境下配置ESP8266开发环境的全过程,包含了必要的软件安装、工具链设置以及开发工具的使用。这将帮助你高效地进行ESP8266的开发工作。

    InterCasa-eCommerce-source-code:全栈PHP,Twig,Javascript,HTML,CSS,MySQL电子商务源代码-css source code

    操作系统:Linux Ubuntu; 程序语言:PHP; 数据库:MySQL; 网络平台:OpenCart; 客户端: JavaScript库:jQuery; PHP模板引擎:Twig; 程序语言:JS,CSS,HTML; 第三方服务整合 物流与运营: ...

    ConsoleApp2.zip

    综上所述,这个项目提供了在C#和.NET Core环境下,利用MySqlBackup.NET库来实现跨平台(尤其是Linux环境)的MySQL数据库备份和恢复功能的实例。开发者可以借此学习如何在非Windows系统上使用.NET Core,以及如何处理...

    findsorguk:便携式古物计划网站和数据库的源代码-Website source code php

    可以在或上看到此软件的有效版本,有关如何安装副本的全面说明,请参见 。 要求 该数据库是在考虑Linux操作系统的情况下编写的。 操作系统要求: 推荐的Ubuntu 16.04或其他LTS PHP 5.4以上 Solr 4.2 MySQL 5.7 ...

    android_sns2.0:android应用sns2.0源代码-Android application source code

    :이터베이스: MySQL 版本: Glide,Retrofit2,Gson,ExoPlayer2,FCM,TedImagePicker,TedBottomPicker,TedPermission ... 능기능 그인로입로그인 회원가입시실시간으로하여사하여제하여 이메일 그인그인...

    codesanook-java-edition:用于codesanook.com的免费开源Java Web项目-java project source code

    对于那些谁想要了解的Java Web开源项目 现有功能 ...去做 技术实施清单 易于开发设置,使用SQLite内置 对开发机器的依赖设置的要求很少 制作可移植的模块和可重用的代码 ... 适用于服务器的Ubuntu 内容

    Linux开发环境配置.docx

    sudo apt install -y mysql-server sudo mysql_secure_installation ``` 2. **PostgreSQL** ```sh sudo apt install -y postgresql postgresql-contrib ``` #### 八、配置开发环境 根据项目需求配置环境...

    onlinejudge-core:在线法官核心

    数据库"judge.sql":只使用了两张测试表 “solution”(soution_id,problem_id,user_id,time,memory,in_date, result,language,...) 和 “source_code”(solution_id, source) Web端"AcmSuperX":(仅用于测试)使用...

    VagrantandPHP

    例如,你可以配置一个基于 Ubuntu 的盒子,然后在 Vagrantfile 中指定安装 PHP、Apache 或 Nginx 服务器、MySQL 数据库等。通过简单的 `vagrant up` 命令,就可以启动一个预设好所有必要组件的环境,这对于团队协作...

    大数据学习路线+知识点大梳理.pdf

    - **MySQL** - **特点**: 开源、稳定、易用。 - **应用场景**: 适用于中小型企业的业务应用。 - **SQL Server** - **特点**: 微软公司开发,适合Windows环境下的企业级应用。 - **应用场景**: 适用于大型企业的...

    开源软件之道.part2of2

    8.10 filezilla server 118 第9章 开源软件之开发工具 120 9.1 eclipse 120 9.2 netbeans 122 9.3 apache ant 124 9.4 apache maven 126 9.5 cvs 128 9.6 subversion 130 9.7 git 131 9.8 bugzilla 133 9.9 junit ...

    RBSE:Club Penguin服务器模拟器-AS2协议

    AS2协议屏幕截图 要求Linux OS(最好是ubuntu 14.04+) Apache2 / Nginx Ruby2.4 PHP 5.5以上MySQL DBMS(数据库管理软件) 宝石清单AS2媒体服务器宝石清单请注意,大多数这些gem都是默认安装的栏杆主动支持抑制log...

    badtogue:开源应用程序的正确发音

    开源应用程序的生态包括了各种项目,如操作系统(如Ubuntu、CentOS)、开发工具(如Eclipse、Visual Studio Code)、数据库(如MySQL、PostgreSQL)、框架(如Django、Spring)等。了解并正确发音这些项目的名称,...

    hydra 7.2 win32

    MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), ...

Global site tag (gtag.js) - Google Analytics