Percona-Lab / mongodb_consistent_backup

A tool for performing consistent backups of MongoDB Clusters or Replica Sets
https://www.percona.com
Apache License 2.0
276 stars 81 forks source link

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 5: ordinal not in range(128) #310

Closed clot09 closed 5 years ago

clot09 commented 5 years ago

CentOS Linux release 7.2.1511 x86 Python 2.7.12 run: mongodb-consistent-backup -H xxxx \ -P 27017 \ -u mongodb_consistent_backup \ -p xx \ -a xx \ -n clusterFullBackup \ -l /data/test_backup \ --archive.method tar failed, and the error message is: reads": 4}, "username": "mongodb_consistent_backup"} [2019-04-02 14:22:58,356] [INFO] [MainProcess] [Stage:init:31] Notify stage disabled, skipping Backup failed: 'ascii' codec can't decode byte 0xc2 in position 5: ordinal not in range(128) Traceback (most recent call last): File "/root/.pex/install/mongodb_consistent_backup-1.4.1-py2-none-any.whl.d932a4e34f8a0434997459a0bc543564f4fcc25b/mongodb_consistent_backup-1.4.1-py2-none-any.whl/mongodb_consistent_backup/init.py", line 15, in run m = MongodbConsistentBackup() File "/root/.pex/install/mongodb_consistent_backup-1.4.1-py2-none-any.whl.d932a4e34f8a0434997459a0bc543564f4fcc25b/mongodb_consistent_backup-1.4.1-py2-none-any.whl/mongodb_consistent_backup/Main.py", line 64, in init self.get_db_conn() File "/root/.pex/install/mongodb_consistent_backup-1.4.1-py2-none-any.whl.d932a4e34f8a0434997459a0bc543564f4fcc25b/mongodb_consistent_backup-1.4.1-py2-none-any.whl/mongodb_consistent_backup/Main.py", line 119, in get_db_conn self.db = DB(self.uri, self.config, True, 'secondaryPreferred') File "/root/.pex/install/mongodb_consistent_backup-1.4.1-py2-none-any.whl.d932a4e34f8a0434997459a0bc543564f4fcc25b/mongodb_consistent_backup-1.4.1-py2-none-any.whl/mongodb_consistent_backup/Common/DB.py", line 55, in init self.auth_if_required() File "/root/.pex/install/mongodb_consistent_backup-1.4.1-py2-none-any.whl.d932a4e34f8a0434997459a0bc543564f4fcc25b/mongodb_consistent_backup-1.4.1-py2-none-any.whl/mongodb_consistent_backup/Common/DB.py", line 127, in auth_if_required self._conn[self.authdb].authenticate(self.username, self.password) File "/root/.pex/install/pymongo-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl.295ffa8500da4a5e66529abc358f6dc00b79eb9f/pymongo-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl/pymongo/mongo_client.py", line 1323, in getitem return database.Database(self, name) File "/root/.pex/install/pymongo-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl.295ffa8500da4a5e66529abc358f6dc00b79eb9f/pymongo-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl/pymongo/database.py", line 112, in init self.__name = _unicode(name) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 5: ordinal not in range(128)

clot09 commented 5 years ago

just replace line 112 of file /root/.pex/install/pymongo-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl.295ffa8500da4a5e66529abc358f6dc00b79eb9f/pymongo-3.7.2-cp27-cp27mu-manylinux1_x86_64.whl/pymongo/database.py

change self.__name = _unicode(name) to self.__name = _unicode(name,'utf-8')