目录
1、使用MySQL服务
第一步:安装MySQL
第二步:启动MySQL
第三步:在服务端给MySQL的root用户设置密码并进入MySQL
[可能出现的错误]
第四步:MySQL命令的使用
第五步:python *** 控数据库
[可能出现的问题:连python连接不上linux的MySQL]
1、使用MySQL服务 第一步:安装MySQL
[root@fttswlp ~]# yum install mariadb-server mariadb -y
第二步:启动MySQL
[root@fttswlp ~]# systemctl start mariadb
查看服务是否启动
[root@fttswlp ~]# ps aux|grep maria|grep -v grep
mysql 2092 0.3 4.3 968920 81688 ? Sl 19:32 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
我们现在是使用一台机器及充当客户端又充当服务器。
第三步:在服务端给MySQL的root用户设置密码并进入MySQL[root@fttswlp ~]# mysqladmin -u root password 123456
[root@fttswlp ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.68-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
[可能出现的错误]
设置密码的时候,若是出现"Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'",这问题的话,我们只需要按下边的图片修改我们/etc/my.cnf文件就行了
第四步:MySQL命令的使用MariaDB [mysql]> show databases; #查看有哪些数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [mysql]> use mysql # 使用mysql数据库
MariaDB [mysql]> show tables; # 查看当前数据库有哪些表
MariaDB [mysql]> select * from user \G; # 查看当前user表里的内容
若是输入了下边这条命令的话,会出现在python中连接不上linux数据库的情况,也就是说下面这条命令是不需要使用的。若是你输入了这条命令的话,下面也有解决的办法。
[创建数据库sc ]
[使用表]
[创建表格]
# 在sc里边执行这段代码
create table userinfo(
username varchar(128),
userage int
)charset=utf8;
[在表格里输入内容]
第五步:python *** 控数据库[安装pymysql库]
先在Terminal的local选项,使用"pip install pymysql"命令,安装pymysql库。
[使用python *** 控MySQL]
运行的初始代码
import pymysql
# 连接数据库
db = pymysql.connect(
host = "192.168.29.128", # mysql主机IP
user = "sc", # 用户名
passwd = "123456", # 密码
database = "sc" # 数据库
)
cursor = db.cursor()
[可能出现的问题:连python连接不上linux的MySQL]
若使用python *** 控MySQL,不能连接的话,改/etc/my.cnf文件。可能原因是输入了" update user set Host="%" where User="root" and Host = "localhost" " 或者其他的问题
然后使用"systemctl restart mysql",在直接使用"mysql -u root"就能够直接进入MySQL了,使用"show databases;"命令看到一下库,若是是这样就进行下一步
这样之后,进行下边的 *** 作,若是能够使用密码登陆就算成功了
能够使用密码登录之后,我们还要把/etc/my.cnf文件中之前输入的命令注释掉。
结论,不能使用" update user set Host="%" where User="root" and Host = "localhost" "这个命令来改变root用户的权限
[创建一个有所有权限的普通用户来进行连接 *** 作]
因为我们不能直接用MySQL里的root用户来连接(可能是root用户权限太大,然后MySQL不给我们连接的权限),所以我们需要新建一个用户并且给它所有权限,那么就相当于是一个root用户了
MariaDB [(none)]> grant all on *.* to sc@'%' identified by '123456';
Query OK, 0 rows affected (0.01 sec)
# grant all on *.* ,所有的权限都给所有的库何表
# 所有的主机都可以以sc用户登入当前这里,它有所有的权限
MariaDB [(none)]> flush privileges; # 刷新一下所有权限
Query OK, 0 rows affected (0.02 sec)
前提:要先把防火墙关闭,不然会出现下面这种情况。使用"iptables -F"或者使用"service firewalld stop"这个命令也可以
运行结果这样就是连接上去了
执行的完整的测试代码
import pymysql
# 连接数据库
db = pymysql.connect(
host = "192.168.29.128", # mysql主机IP
user = "sc", # 用户名
passwd = "123456", # 密码
database = "sc" # 数据库
)
# 使用cursor()方法创建一个游标对象,用于保存中间结果(若是没有游标的话,会把东西输出到屏幕,那样就不能够保存下来)
cursor = db.cursor()
# 使用execute执行sql语句
cursor.execute("select * from userinfo")
# data = cursor.fetchone()
data = cursor.fetchall()
print(data)
# 关闭数据库
db.close()
[执行结果]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)