下载mysql源码包,mysql-5.6.14.tar.gz
下载时注意别选成其他的linux安装包,不然编译肯定报错。选择平台的下拉列表里选择 Source Code,Select Platform: Source Code ,下载 Generic Linux (Architecture Independent), Compressed TAR Archive
以下是过程
groupadd mysql //增加用户组
useradd -g mysql mysql -s /usr/sbin/nologin
mkdir /mysql //mysql数据目录
mkdir /usr/local/mysql //安装目录
tar -zxvf mysql-5.5.21.tar.gz
cd mysql-5.5.21
//cmake编译代码 未安装cmake 可以用以下命令 sudo apt-get install cmake,在/usr/bin里能看到cmake,或者下载cmake源码包 cmake-2.8.7.tar.gz,解压后进入解压目录运行./configure make && make install就搞定
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all
-DWITH_MYISAM_STORAGE_ENGINE=1
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
(//以上参数分别为安装目录、数据目录、字符集、扩展的字符集、MYISAM/INNODB存储、是否允许执行本地load data infile,附参数说明
- CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
- DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
- DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
- ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
- WITH_COMMENT:指定编译备注信息
- WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
- WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
- SYSCONFDIR:初始化参数文件目录
- MYSQL_DATADIR:数据文件目录
- MYSQL_TCP_PORT:服务端口号,默认3306
- MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock
)
cd /mysql-5.6.14/
make
make install
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /mysql
安装完后,复制配置文件,启动前初始化
cd /mysql-5.6.14/
cp suport-files/xxx.cnf my.cnf (mysql配置文件,可以选择my-medium.cnf)
./script/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --user=mysql --datadir=/usr/local/mysql/data
//defaults-file表示指定默认的配置文件,如果不指定,系统默认的优先级是依次使用/etc/my.cnf,/etc/mysql/my.cnf,mysql安装目录下my.cnf作为mysql的配置文件,那之前make的那些参数就白设置了。。。
//如果不指定 可以通过cp my.cnf /etc/my.cnf 将etc目录下得配置文件覆盖
启动mysql
方法一:
sudo bin/mysqld_safe --user=mysql &
方法二
cp suport-files/mysql.server /etc/init.d/mysql
sudo /etc/init.d/mysql start
启动MySQL服务
- carl@Carl-U:/usr/local/mysql$ sudo /etc/init.d/mysql start
- Starting MySQL
- ..... *
- carl@Carl-U:~$ sudo /usr/local/mysql/bin/mysqladmin -u root password 'root'
登陆
这时候直接输入mysql是找不到的
需要使用/usr/local/mysql/bin/mysql
- carl@Carl-U:~$ sudo /usr/local/mysql/bin/mysql -u root -p
- Enter password:
mysql> show databases;
查看有哪些mysql用户
- mysql> use mysql;
- mysql> select user,host,password from user;
1.mysql> delete from user where password='';
2.Query OK, 5 rows affected (0.00 sec)
创建新用户
cd /usr/local/mysql/
bin/mysqladmin -u root password 824824