在大数据如日中天的当下,传统数据库依然有自己的用武之地,特别是对ACID要求高的企业应用更是把传统数据库当做自己的宠儿。传统数据库有很多,比如oracle, mysql, sqlite, postgre等。这里我准备把mysql的源码安装和基本应用将一下,后续会站在模块和源码的角度进一步的分析。
MYSQL的安装:
在安装之前需要一些准备工作:
1.CMake的安装
2.bison库的安装
3.创建mysql的安装目录和数据库存放目录
$ mkidr /home/liupp/mysql
$ mkdir /home/liupp/mysql/data
4.创建mysql用户和用户组
$ groupadd mysql$ useradd -r -g mysql mysql
5.源码安装mysql
$ git clone https://github.com/mysql/mysql-server.git
$ git branch -r origin/5.5 origin/5.6 origin/5.7 origin/HEAD -> origin/5.7
$ git checkout 5.6
$ cmake . -DCMAKE_INSTALL_PREFIX=/home/liupp/mysql -DINSTALL_DATADIR=/home/liupp/mysql/data -DMYSQL_UNIX_ADDR=/home/liupp/mysql/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
$ sudo make
$ sudo make install
参数说明:
-DCMAKE_INSTALL_PREFIX安装目录
-DINSTALL_DATADIR数据库存放目录
-DDEFAULT_CHARSET使用utf8字符
-DDEFAULT_COLLATION校验字符
-DEXTRA_CHARSETS安装所有扩展字符集
-DENABLED_LOCAL_INFILE允许从本地导入数据
注意事项:
重新编译时,需要清楚旧的对象文件和缓存信息。
$ make clean
$ rm -f CMakeCache.txt
$ rm -rf /etc/my.cnf
6.设置目录权限
$ cd /home/liupp/mysql
$ chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql
$ chown -R mysql:mysql data
7.将配置文件放入/etc下面
$ cp support-files/my-medium.cnf /etc/my.cnf
8.初始化数据库
$ cd /home/liupp/mysql
$ scripts/mysql_install_db --user=mysql
执行后你会看到下图:
然后执行下面命令:
$ cp surpport-files/mysql.server /etc/init.d/mysql
$ chmod 755 /etc/init.d/mysql
9.启动mysql服务$ /etc/init.d/mysql start
10.进入mysql时遇到的问题:
$ mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
$ mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
解决办法如下:
$ /etc/init.d/mysql stop
$ mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
$ mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';
//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit
$ /etc/init.d/mysqld restart
$ mysql -uroot -p
Enter password: <输入新设的密码newpassword>
至此,Mysql的安装已经完成。下面讲一下数据库的简单操作。