为了做服务迁移,mysql的安装总是不那么顺利, 教程很多, 但都不能够一蹴而就, 所以,单独总结一篇, 参考这篇文章,你可以很顺利的在linux系统上安装mysql数据库。
操作系统: ubantu 16.4
mysql8.0安装教程:https://blog.csdn.net/weixin_43350051/article/details/104732518
1、下载安装包
下载地址,版本:5.6.33,通用版,linux下64位
也可以通过命令下载:
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2、解压
在压缩包的目录下执行$:tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
创建目录$:mkdir /usr/local/mysql
复制解压后的mysql目录$:cp -r mysql-5.6.33-linux-glibc2.5-x86_64/* /usr/local/mysql (文件比较多,复制需要一点时间,耐心等待完成)
3、添加用户组
添加组$:groupadd mysql
添加用户mysql 到用户组mysql$:useradd -g mysql mysql
4、安装mysql
进入目录$:cd /usr/local/mysql/
创建目录$:mkdir ./data/mysql
授权$:chown -R mysql:mysql ./
执行命令$:./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql (不知道为什么,有时候可能需要重启一下服务才能够执行)
(ps: 如果报这个错误:Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
Ubuntu下执行$:apt-get install libaio1 libaio-dev 和 apt-get -y install autoconf(centOs下执行:yum -y install autoconf)后,再执行上一步命令 )
复制命令$:cp support-files/mysql.server /etc/init.d/mysqld
授权$:chmod 755 /etc/init.d/mysqld
复制配置文件$:cp support-files/my-default.cnf /etc/my.cnf
5、修改启动脚本
编辑文件$:vi /etc/init.d/mysqld
找到下边两个key, 修改文件里的内容:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
6、加入环境变量
编辑文件$:vim /etc/profile,这样可以在任何地方用mysql命令了。
在文件的最后一行添加一下代码:
export PATH=$PATH:/usr/local/mysql/bin
生效命令$:source /etc/profile
7、启动服务
进入目录$:cd /usr/local/mysql 后
执行命令$: service mysqld start (注意:这个时候可能是无法启动的,请重启服务$:reboot [-n] )
8、测试连接
进入目录$:cd /usr/local/mysql 后
执行命令$: ./bin/mysql -uroot -p ,默认密码是空,可以直接进入
启动mysql
$ service mysqld start
关闭mysql
$ service mysqld stop
查看运行状态
$ service mysqld status
mysql操作相关:
mysql 数据安装好了,默认是可以无密码登录的 进入目录 /usr/local/mysql 后,
$ ./bin/mysql -uroot
Q0: 如何登录并进入mysql命令行?
正常情况下,你的mysql配置好了,进入的命名执行$: msyql -uroot -p 然后输入密码就可以了
但是,你的mysql可能没有配置好,所以mysql的命令找不到,那么你依然可以换种方式进入,先进入安装目录 /usr/local/mysql
在安装目录下执行命令 ./bin/mysql -uroot -p ,然后输入密码即可
Q1: 无法远程连接阿里云安装的mysql?
# 由于mysql默认不允许外网访问,所以,需要创建一个允许外网连接的用户
mysql> grant all on *.* to admin@'%' identified by '123456' with grant option;
mysql> flush privileges;
mysql> flush privileges;
Q2: mysql 无法远程连接?
# 支持root用户允许远程连接mysql数据库 (同时也可以创建用户名)
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> flush privileges;
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> flush privileges;
Q3: mysql 无法远程连接?
# 支持root用户允许远程连接mysql数据库 (同时也可以创建用户名)
mysql> use mysql;
mysql> use mysql;
mysql>
mysql> flush privileges;
update user set host = '%' where user = 'root';
mysql> flush privileges;
Q4: mysql全都配置好了,还是无法连接阿里云的mysql
极大的可能是没有配置阿里云服务器的安全规则,增加一个配置,入方向,端口号为3306的安全规则, 这样, 就可以远程连接阿里云服务器的mysql数据库了。