[Linux]javaEE篇:源码安装mysql

javaEE :源码安装mysql

安装环境

系统平台:CentOS-7-x86_64

数据库版本:mysql-5.6.14


源码安装mysql步骤:

一、卸载mysql

安装mysql之前,先确保linux系统中没有mysql的相关文件;

如果没有,那么请忽略这一步的卸载过程。

如果有,那么把mysql卸载。

1、检查是否有myql service

rpm -qa | grep mysql:检查是否有mysql

2、如果有,卸载掉mysql

rpm -e mysql_libs==》rpm -e mysql具体包名:普通删除模式

或者

rpm -e --nodeps mysql_libs==》rpm -e --nodeps mysql具体包名:强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 。

二、安装mysql
1、安装编译代码需要的包

yum -y install make gcc-c++ cmake bison-devel ncurses-devel。直接将此指令复制粘贴执行。

2、下载MySQL ,并放到/usr/local目录下

省略此步骤

3、解压mysql源码包,并进入mysql目录中

tar xvf mysql-5.6.14.tar.gz:解压mysql源码包

cd /usr/local/mysql-5.6.14:进入到mysql目录下

4、编译安装
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=
/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=
1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=
1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=
/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=
1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=
all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

复制上面这段指令,在/usr/local/mysql-5.6.14 (进入到mysql目录下)执行这段指令。

执行完成后,再执行下面的这个指令:

make && make install

make && make install:编译并安装;&&表示执行完前面的这段指令,再执行后面的这个安装指令。

这个一步大约需要半个小时。安装完成,接下来就需要来配置我们的mysql了。

三、配置mysql

在设置权限之前,我们要先确定linux系统中是否有mysql用户及用户组

cat /etc/passwd:查看用户列表

cat /etc/group:查看用户组列表

如果没有就进行创建mysql用户及mysql用户组

groupadd mysql:创建mysql用户组

useradd -g mysql mysql:创建mysql用户,并设置这个用户为mysql组。

下面就正式进入到:设置权限

1、设置权限

在设置mysql权限之前,我们先来查询一下这个文件的信息

[root@localhost local]# ls -l | grep mysql      
drwxr-xr-x. 13 root root       213 May  5 00:15 mysql

chown -R mysql:mysql /usr/local/mysql:修改/user/local/mysql的权限

修改完权限,重新查看一下mysql的信息

[root@localhost local]# ls -l | grep mysql      
drwxr-xr-x. 13 mysql mysql       213 May  5 00:17 mysql

修改权限成功!!

2、初始化配置

进入到安装路径(并执行下面的这段指令),执行初始化配置脚本,创建系统自带的数据库和表。

  • cd /usr/local/mysql:进入到安装路径

  • scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql:这是一条指令

注意:执行上面这条指令报错

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

报错原因:在CentOS 7版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。修改名称,防止干扰:

解决方法:mv /etc/my.cnf /etc/my.cnf.bak

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!

三、启动mysql

添加服务,拷贝服务脚本到init.d目录,并设置开启启动。

注意:是在/usr/local/mysql下执行的

shell
[root@localhost ~]# cd /usr/local/mysql         
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# chkconfig mysql on
[root@localhost mysql]# service mysql start
Starting MySQL.. SUCCESS! 

上面是的指令就是启动mysql所用到的;

第一行:进入到/usr/local/mysql目录下;

第二行:拷贝服务脚本到init.d目录;

第三行:设置开机启动;

第四行:启动Mysql

四、使用mysql

执行下面的命令,进行修改密码:

[root@localhost mysql]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.14 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password =password('root');
Query OK, 0 rows affected (0.01 sec)
mysql> quit     //退出指令
Bye
[root@localhost bin]# ./mysql -uroot         
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost bin]# ./mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.14 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;   // 查看mysql中数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.03 sec)

mysql> 

第一行:cd /usr/local/mysql/bin,进入该目录

第二行:./mysql -uroot

第十一行:set password =password('root');:修改数据库密码

第十三行:quit;退出

第十七行:./mysql -u root -p;重新登录mysql,输入密码

第 三十一 行:show databases;查看mysql中数据库


接着在上面的基础上,来创建一张user表,并插入两条数据

mysql> create database myDB;     //创建数据库:myDB
Query OK, 1 row affected (0.00 sec)
mysql> use myDB;                //使用数据库:myDB
Database changed
mysql> show databases;          //查询列出所有数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myDB               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> create table user(id int, name varchar(32));     //创建表:user
Query OK, 0 rows affected (0.01 sec)

mysql> insert into user values(100,'tom');       //插入数据:user
Query OK, 1 row affected (0.00 sec)

mysql> insert into user values(1,'tom');  
Query OK, 1 row affected (0.00 sec)

mysql> insert into user values(2,'王春兰');
Query OK, 1 row affected (0.00 sec)
mysql> select * from user;           //查询user表
+------+-----------+
| id   | name      |
+------+-----------+
|  100 | tom       |
|    1 | tom       |
|    2 | 王春兰    |
+------+-----------+
3 rows in set (0.00 sec)

mysql> 
五、配置全部变量

!!!重要

/usr/local/mysql/bin目录配置到全局变量的文件中去/etc/profile

[root@localhost mysql]# pwd
/usr/local/mysql
[root@localhost mysql]# vim /etc/profile
//... ...省略部分内容
unset i
unset -f pathmunge
JAVA_HOME=/usr/local/java
//  注意将:/usr/local/mysql/bin配置到这来,前面用:隔开
PATH=$PATH:$JAVA_HOME/bin:/usr/local/mysql/bin     
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH

最后重启服务 或者退出重新登录

systemctl daemon-reload:服务重载

logout:退出

这时候我们就可以在任意位置登录mysql了。

[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.14 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

你可能感兴趣的:([Linux]javaEE篇:源码安装mysql)