1. 下载Linux版本的Mysql的编译后压缩文件tar.gz,在linux中解压
2. 初始化:
创建datadir文件夹(数据文件目录)
输入:
`[view@dev-app1 bin]$ ./mysqld --initialize --datadir=/home/view/ckl/mysql/data --user=view --basedir=/home/view/ckl/mysql `
输出(最后一行):
`17-08-10T00:58:34.686156Z 1 [Note] A temporary password is generated for root@localhost: fuJu.RPlH5lo`
ps:
- 其中basedir为mysql应用程序的目录 输出最后一行最后的字符为账户初始密码
- 如果datadir中有数据,会提示失败,记得每次初始化的时候清空datadir(注意备份)
- 由于我们没有root权限,/var/等目录没有创建文件的权限,一定要指定datadir和basedir,init只需要这两个目录,如果不指定,mysqld会去my.cnf中寻找设置,实在不行会使用默认值,另外mysql查找配置文件的顺序为:
/etc/my.cnf---->/etc/mysql/my.cnf----->/usr/local/mysql/etc/my.cnf---->~/.my.cnf
3. 启动mysql服务
修改my.cnf文件(没有就自己创建)
[client]
socket=/home/view/ckl/mysql/mysql.sock
basedir=/home/view/ckl/mysql
datadir=/home/view/ckl/mysql/data
log-error=/home/view/ckl/mysql/mysql-log/mysql.err
[mysqld]
socket=/home/view/ckl/mysql/mysql.sock
user=view
basedir=/home/view/ckl/mysql
datadir=/home/view/ckl/mysql/data
log-error=/home/view/ckl/mysql/mysql-log/mysql.err
tmpdir=/home/view/ckl/mysql/tmp
pid-file=/home/view/ckl/mysql/mysql.pid
[mysqld_safe]
pid-file=/home/view/ckl/mysql/mysql.pid
socket=/home/view/ckl/mysql/mysql.sock
user=view
basedir=/home/view/ckl/mysql
datadir=/home/view/ckl/mysql/data
log-error=/home/view/ckl/mysql/mysql-log/mysql.err
tmpdir=/home/view/ckl/mysql/tmp
这个文件的详细解释见MySQL配置文件my.cnf的理解
mysql socket文件作用详解
Mysql参数详解
启动服务
[view@dev-app1 mysql]$ ../bin/mysqld --defaults-file=/home/view/ckl/mysql/my.cnf --port=9999
ps:
- 如果过程中有错误,请去你定义的err文件目录下查看具体错误信息,如果正常启动了,应该是有一个常闪的光标,请开启另外一个界面进行登录操作。
- 可以不指定port,默认3306(可能会有冲突),应该也可以在my.cnf中设置。
4. 登录数据库
[view@dev-app1 mysql]$ ./bin/mysql -uroot -p -S ./mysql.sock
指定你开启服务用的mysql.sock,因为登录时还是默认用的/tmp/mysql.sock,至于为什么在my.cnf中设置了还要指定,具体不知,后面再看。(目前看来应该是client登录时读并没有用之前启动服务用的my.cnf,而是去默认顺序里找cnf配置文件里的设置:sudo find / -name my.cnf sudo mysql –help | grep my.cnf这两个语句可以查看到默认的顺序) 也可以利用ln -s 去连接tmp中的sock到你sock就不用-S(等于-socket)了。
第一次登陆需要更改密码:
mysql> alter user 'root'@'localhost' identified by '123456';