1.安装条件:
官网下载源码包 ("https://dev.mysql.com/downloads/mysql/")
2.下载完成后将mysql-boost-5.7.19.tar.gz上传到虚拟机上(vmtools或者ftp等)然后进行编译安装
# tar zxvf mysql-boost-5.7.19.tar.gz
这边编译使用cmake工具 (其功能类似./configure 生成makefile文件)
#yum install cmake -y
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_DATADIR=/var/lib/mysql/data -DWITH_BOOST=boost
编译mysql会遇到一些问题 可以通过yum解决
我白机安装后遇到的问题如下:
1)、无法找到GIT
#yum install git -y
2)The CXX compiler identification is unknown
#yum install gcc gcc-c++ -y
3)Curses library not found
#yum install ncurses ncurses-devel -y
(这个编译时间很长 双核编译了40+分钟 还会有失败的情况)
编译完成之后执行
#make && make install
即可完成安装(默认的配置文件在/etc/my.cnf)
3.创建mysql用户
#useradd mysql -M -s /sbin/nologin
(-M代表不生成 Home目录,-s ,代表不允许登录。)
4.将脚本文件拷贝到init.d目录下 方便以服务方式启动
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#vim /etc/init.d/mysqld =>加上一句chkconfig mysqld on(这样就能以service的方式启动了)
5.修改配置文件
分别是错误日志目录 数据存放目录 socket文件目录 pid目录
#chown -R mysql:mysql /var/lib/mysql(说明这个mysql文件夹,需要让mysql用户有权限访问)
6.初始化mysql
#cd /usr/local/mysql/bin(mysql安装目录)
#./mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
初始化完后会出现一组随机密码给root用户
#vi /var/lib/mysql/mysql-error.log
记下这个密码 方便登陆
7.启动mysql服务
#service mysqld start
8.使用客户端连接mysql
安装完成之后bin目录下有个mysql可执行程序就是客户端执行程序了
这边可以通过cd bin 然后./mysql -u root -p来启动客户端(麻烦)
推荐建立软连接或者加到环境变量中
1)建立软连接 :
ln /usr/local/mysql/bin/mysql 你喜欢的目录/名字
然后就可以在你的位置./名字 -u root -p
2)加入环境变量中:
#vim /etc/profile
随便找个位置加入
export PATH=/usr/local/mysql/bin:$PATH
或者export MYSQL_PATH=/usr/local/mysql/bin
export PATH=$MYSQL_PATH:$PATH
wq保存之后执行source /etc/profile使环境变量生效
然后就可以在任意位置mysql -u root -p了
执行 mysql -u root -p 之后输入错误日志给我们的随机密码会出现一个错误Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方案:
1)修改配置文件
#vim /etc/my.cnf
加入[mysql] (这个代表客户端配置) (推荐)
[mysql]
socket=/var/lib/mysql/mysql.sock
2).使用tcp方式连接
#mysql -u root --protocol=tcp -p
9.重置root账号密码
登陆root之后
mysql>ALTER USER USER() IDENTIFIED BY '123';
10.使用本地可视化工具连接虚拟机mysql服务
grant all privileges on 表名 to 用户名@'IP地址' identified by ‘密码’;
或grant all on 表名 to 用户名@'IP地址' identified by ‘密码’
如果要所有,表以及所有IP均可
grant all on *.* to localuser@'%' identified by '123'
flush privileges; 刷新权限
连接成功!
如果连接失败检查防火墙
或者直接
#iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
#iptables-save