ubuntu下用mysql源码安装

在大数据如日中天的当下,传统数据库依然有自己的用武之地,特别是对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的安装已经完成。下面讲一下数据库的简单操作。

你可能感兴趣的:(ubuntu下用mysql源码安装)