假设你的home目录为/home/work
mysql-server 安装
- 下载mysql.tar.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz
- 下载cmake [5.5及以上的版本需要用cmake进行安装]
cmake 官网下载 http://cmake.org/cmake/resources/software.html
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2-Linux-i386.tar.gz
解压
tar -zxvf cmake-2.8.12.2-Linux-i386.tar.gz
无需编译 直接使用 cmake-2.8.12.2-Linux-i386/bin/cmake
- 安装mysql
1) tar -zxvf mysql-5.6.17.tar.gz
2) cd mysql-5.6.17
3) /home/work/cmake-2.8.12.2-Linux-i386/bin/cmake -DCMAKE_INSTALL_PREFIX=/home/work/local/mysql -DMYSQL_DATADIR=/home/work/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/home/work/tmp/mysqld.sock -DWITH_INNOBASE_STORAGE_ENGINE=1
注意: 路径尽量使用绝对路径。
4) make ; make install
- 启动
/home/work/local/mysql/scripts/mysql_install_db --user=work --basedir=/home/work/local/mysql --datadir=/home/work/local/mysql/data --no-defaults
运行mysql_install_db以后会有相应的启动提示 按照提示结合日志即可启动,也可以按照我下面写的方法。
/home/work/local/mysql/scripts/mysql_install_db --defaults-file=/home/work/local/mysql/my.cnf --datadir=/home/work/local/mysql/data/ --basedir=/home/work/local/mysql/
touch /home/work/tmp/mysqld.sock 注意: 这个文件是你在cmake编译时候写的 -DMYSQL_UNIX_ADDR=/home/work/tmp/mysqld.sock
另外如果 3306已经被其他mysql 占用 则要修改 /home/work/local/mysql/my.cnf 的port为 其他端口
/home/work/local/mysql/bin/mysqld_safe --defaults-file=/home/work/local/mysql/my.cnf & [注意这里要指定my.cnf否则会使用默认的/etc/my.cnf]
/home/work/local/mysql/bin/mysqladmin -u root password '123456'
- 使用 /home/work/local/mysql/bin/mysql -uroot -p123456 使用
1) 如果报错 ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111
可能是你使用了其他端口 需要在链接的时候指定端口 /home/work/local/mysql/bin/mysql -uroot -p123456 -P3307
2)如果报错,没有权限ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
那么是你需要添加该用户 或者 是为这个用户授权
关于授权
默认是有一个 root@localhos的账户, 一般我们是为了支持其他机器访问的话需要加 root@%的账户和 root@本机名称的账户.
步骤就是
create user 'root'@'%' identified by '123456'
create user 'root'@'***.**.com' identified by '123456'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'***.**.com' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
注意精确匹配的优先级要高于%这种模糊匹配, 而且有时候-hip会解析成-hhost名称 这样要看root@host名称是否有授权.
添加用户 可以使用add user 命令 也可以直接在mysql.user中添加这个用户. 比如: create user root@localhost identified by ‘123456’;
授权需要用grant 命令 如:GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’;
注意:
1.登录,不知道为什么,我在my.cnf和启动参数中都制定了 mysql.sock 文件位置,但是默认还是会访问 /var目录下的 sock 文件,于是会报错没有权限。可以使用 ip 连接,如下:
./bin/mysql -h 127.0.0.1 -P you_port -uroot -p
2.家目录下任何环境可以启动 MySQL 需要配置环境变量,~/.bashrc 末尾加入 export PATH=$PATH:your_mysql_bin
3.安装完毕后,使用 root 用户名进行登录。默认 root 登录时没有密码的,可以登录上去自己设定。