Linux(CentOS6.X)安装mysql

时间:2024-03-25 17:04:44

首先执行rpm -qa|grep -i mysql检查一下是否已经安装过mysql

mysql-libs-5.1.73-5.el6_6.x86_64

可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸载时要使用–nodeps选项忽略依赖关系

卸载老版本的库文件:rpm -e mysql-libs-5.1.73-5.el6_6.x86_64 --nodeps

使用wget方式直接下载rpm的bundle包,里面包含了server、client、devel等安装包:wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar

下载完成后解压:tar -xvf MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar

得到

MySQL-server-5.6.36-1.el6.x86_64.rpm
MySQL-client-5.6.36-1.el6.x86_64.rpm
MySQL-devel-5.6.36-1.el6.x86_64.rpm
MySQL-shared-5.6.36-1.el6.x86_64.rpm
MySQL-test-5.6.36-1.el6.x86_64.rpm
MySQL-embedded-5.6.36-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.36-1.el6.x86_64.rpm

等rpm安装包文件。

接下来执行rpm安装命令:rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm MySQL-client-5.6.36-1.el6.x86_64.rpm安装server和client,可能安装失败,提示错误信息:

warning: MySQL-server-5.6.36-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1()(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by MySQL-server-5.6.36-1.el6.x86_64

这都是因为缺少依赖的相关包造成的,解决办法是通过yum直接安装这些依赖包。
yum -y install libaio
yum -y install numactl

依赖包安装好后再次执行rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm MySQL-client-5.6.36-1.el6.x86_64.rpm来安装server和client。

附上一张完整的安装过程图:注意最后的安装过程信息,后面有用。

Linux(CentOS6.X)安装mysql

安装成功之后,我们来启动mysql服务。执行service mysql start。启动成功之后,在执行mysql -uroot -p命令登录数据库,此时提示错误:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

因为我们没有密码。Mysql 5.6及以后版本出处于安全考虑,root密码不为空,并强制登陆之后要修改密码。所以在MySQL的安装过程中,会生成一个随机密码。但这个随机密码在哪呢?在这里感谢潇湘隐者提供的解决办法。这时候回过头去看我们MySQL的安装日志信息中:
Linux(CentOS6.X)安装mysql
你会看到MySQL生成了root用户的随机密码,并将这个随机密码放置在/root/.mysql_secret中。知道这个就简单了,执行more /root/.mysql_secret查看文件内容:

# The random password set for the root user at Fri Apr 21 08:16:33 2017 (local time): 4fsMZJ8tWAL6IAIJ

最后这个字符串就是随机密码,复制下来,再次执行mysql -uroot -p命令登录,提示输入密码的时候粘贴再回车就好了。此时我们还不能进行其它的操作,错误提示:

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

提示必须要先修改密码才能进行别的操作,如图:
Linux(CentOS6.X)安装mysql
修改密码为root123mysql> set password=password('root123');


到这里还有个问题就是不能远程连接到这个数据库,因为默认是只支持本地链接的。一下是解决这个问题的方法:
切换到mysql库:mysql> use mysql
mysql> update user set host = '%' where user = 'root';

ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’

发现主键冲突了,来查看一下这个表的信息:
mysql> select host from user where user="root";

+————————-+
| host |
+————————-+
| % |
| 127.0.0.1 |
| ::1 |
| localhost.elasticsearch |
+————————-+
4 rows in set (0.00 sec)

原来host已经有了%这个值,所以直接运行命令
mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

Linux(CentOS6.X)安装mysql

http://blog.csdn.net/vampirehgg/article/details/70308256

http://blog.csdn.net/wqc19920906/article/details/52608460?locationNum=10&fps=1